dummyNode宣言変数は、イテレータクラスをネストして作成するまでうまくいきました。これは、非静的データメンバ '私はイテレータクラスを削除した場合のLinkedList :: dummyNode」C++は、それがうまく機能 テンプレート非静的データメンバ 'linkedlist <int> :: dummyNode'の無効な使用C++
class linkedList
{
private:
listNode<T> * head, *tail;
listNode<T> * dummyNode = new listNode<T>;
int sz = 0;
public:
class iterator
{
public:
iterator()
{
itrNode = head;
}
void operator ++()
{
try{
if(itrNode == dummyNode)
throw "Sorry this is the end of the list\n";
else
{
itrNode = itrNode->next;
}
}catch(const char * error)
{
cerr << error;
}
}
T& operator *()
{
return *(itrNode->value);
}
void operator --();
private:
listNode<T> * itrNode;
};
linkedList();
~linkedList();
linkedList(T value, int initial_size);
iterator begin();
};
その外側のクラスとデータを共有していない
内部クラスのコンストラクタは、外部クラスのデータメンバーである 'head'を参照します。代わりに適切なイテレータを返す関数 'linkedlist :: begin'を作成する必要があります。イテレータの直接コンストラクタが必要な場合は、引数として 'linkedlist'が必要です。 – jwimberley
申し訳ありませんが、その問題はどこですか?私は解決策も理解していませんでしたが、コードを書いてくださいね! –