2012-01-12 7 views
0

List<Player>に保存されているPlayerのインスタンスの名前を印刷しようとしています。私は "Plop!"これを働かせるために?Listに格納されたオブジェクトにクラス関数を使用し、イテレータでアクセスしました

list<Player>::iterator it; 
    for(it=players.begin(); it != players.end(); ++it) cout << "Plop!" << " "; 
    cout << endl; 

私はイテレータが異なり、それは通常のポインタになる場合よりも、処理されるべきであるという感覚を持っている

*it.getName(); 
*it->getName(); 

を試してみました。または、イテレータ*itにPlayerオブジェクトがまったく含まれていない可能性がありますか?それがあるべき

+0

代替ソリューションとして、Playerクラスに 'operator <<'を実装することを検討してください。過負荷または友人機能のいずれか。 –

答えて

1

限りPlayerは、このメソッドを持っているよう

1
it->getName(); 

...。

(*it).getName() 

です。演算子は*よりも強くバインドします。そうしないと、コンパイルに失敗します。

0

はあなたが

*it 

をやっているように、イテレータを間接参照する必要がありますが、左にデリファレンス滴、あなたは、いくつかの括弧と場所に保管する必要があるので、私は:)何を意味するか知っていれば:

forループの中括弧を忘れないでください!

関連する問題