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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
タカトゥ

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

#1

投稿記事 by タカトゥ » 13年前

クラスのインスタンスをlistに格納して、そこから関数を呼びたいのですがうまくいきません。
解決策を教えていただけないでしょうか?

コード:

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

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

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

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

fulls
記事: 72
登録日時: 14年前
住所: 埼玉

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

#2

投稿記事 by fulls » 13年前

どううまくいかないのかを記載して下さい。

一応

コード:

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

コード:

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

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

タカトゥ

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

#3

投稿記事 by タカトゥ » 13年前

教えて頂いた方法で解決しました。
どうもありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る