09/03/24 12:20:00
>>521
レスありがとうございます。
>printf("%d ", (**iter)
なんでうまくいかないんだろうと4時間くらい混乱してました。
List::iterator()でnewしてポインタを返す仕様でした……(もちろん管理してdeleteもする)。
とりあえず一つ前のソースコードは(**iter)で動きました! どうもです。
ポインタ渡してるんだから*が一個多く必要なのは当然。初歩的なミスだったとは恥ずかしい。
初めて演算子のオーバーロードなんてやるからそれが間違ってるのかと思い込んでました。
List::iterator()は、
ListIterator<Type> iterator(){
return ListIterator<Type>(this);
}
現在のソースコードはポインタじゃなくてこんな感じにしてみました。
>多態はやめたほうが……
Iteratorクラスを作って継承するのはやめる方向で書き直してみます。どうせ自分しか使わないですし。
アドバイスありがとうございました。
スレ汚し失礼しました。