ページ 11

listに格納したクラスポインタの関数をイテレータで呼ぶことができない

Posted: 2012年6月13日(水) 00:10
by タカトゥ
クラスのインスタンスをlistに格納して、そこから関数を呼びたいのですがうまくいきません。
解決策を教えていただけないでしょうか?

コード:

class Class{
public:
	void Calc();
};

void func(){
	list<Class*> List;

	list<Class*>::iterator itr = List.begin();

	itr->Calc();// ここでエラー
}

Re: listに格納したクラスポインタの関数をイテレータで呼ぶことができない

Posted: 2012年6月13日(水) 01:23
by fulls
どううまくいかないのかを記載して下さい。

一応

コード:

itr->Calc();
だとイテレータ本体にアクセスしていて、要素にアクセスしていないのではないでしょうか。
要素にアクセスしたいのならば、

コード:

(*itr)->Calc();
こんな感じで書けばいいのではないでしょうか。

参考
http://www.geocities.jp/ky_webid/cpp/library/003.html

Re: listに格納したクラスポインタの関数をイテレータで呼ぶことができない

Posted: 2012年6月13日(水) 15:04
by タカトゥ
教えて頂いた方法で解決しました。
どうもありがとうございました。