我的代碼使用內部類的模板類的地方屬於
#include <iostream>
using namespace std;
template<typename E>
struct Node{};
template<typename E,typename I>
class List{
public:
class Iterator{
public:
private:
ListNodePtr ptr; //‘ListNodePtr’ does not name a type
};
private:
ListNodePtr foo(ListNodePtr); // ‘ListNodePtr’ does not name a type
struct ListNode:public Node<E>{};
typedef ListNode* ListNodePtr;
};
我得到錯誤信息(以上評論)
我怎樣才能使它發揮作用?
另外,我不知道如何的.cpp
我真的很感謝所有幫助定義ListNodePtr foo (ListNodePtr)
。
也許移動'typedef ListNode * ListNodePtr;''上面'class Iterator {'會幫忙嗎? – VTT
你正在使用struct List,我認爲它應該是class List – 3stud1ant3
@ user1000'class'和'struct'只有3個區別。成員的默認訪問說明符。從類型繼承時的默認訪問說明符。事實上,你可以使用'class'而不是'typename'作爲模板參數,但是你不能使用'struct'。所以,使用'struct'就完全沒問題。 – OmnipotentEntity