リストクラスのイテレータを作成しています。イテレータを使用しようとしますがptr-> operator *()では非参照を扱いますが、* ptrでは非参照を扱います
T& operator*() const {
return this->currentNode->data;
}
:イテレータは、間接参照演算子を持つ
for(; list->begin() != list->end; (*list_iter).operator++())
{
cout << list_iter << endl;
cout << list_iter->operator*() << endl;
//cout << *list_iter << endl; //not working
}
コメント行は、「バイナリexperssionのostreamに及びmylistに無効なオペランド::イテレータを」と言います。同様に、(* list_iter).operator ++()をlist_iter ++または(* list_iter)++に変更すると、同様のエラーが発生します。私は何が起こっていると思う何
はこのようなものです:num2のですが、この場合には
int num1 = 3;
int *num2 = new int;
*num2 = 3;
、NUM1が== * num2のです... * NUM2は、(両方とも整数)NUM1と機能的に似ています整数へのポインタで、* num2は整数になります。
そうに:この場合
MyList list1();
MyList *list2 = new MyList();
、私は期待してください「*リスト2」「*のNUM2は」NUM1に似ているのと同様に、リスト1に似ているように? num2が逆参照を呼び出すか、MyListをMyListに変換しようとしていますか?
ここでは何が起こっているのか本当に苦労しています。ありがとう!
私は小さな完全なコード例を含める必要があると思います。あなたが投稿したものから、何がうまくいかないのかははっきりしていません。 – Eljay