メンバ変数に配列を格納しようとしました。

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

メンバ変数に配列を格納しようとしました。

#1

投稿記事 by ゆも » 17年前

C++にてコンパイルした結果

■aa.h
private:
 AddressInfo *m_AddressInfo; // AddressInfoは自作のクラス
};

■aa.cc
aa::aa(AddressInfo *ad)
{
m_AddressInfo = ad;
}

■bb.cc
void main()
{
AddressInfo *ai = new AddressInfo("a", "b", "c");
AddressInfo *ad[6];
ad[0] = ai;
ad[1] = ai;
ad[2] = ai;

aa res = new aa(ad);
}

■エラー内容
error C2664: '__thiscall aa::aa(AddressInfo *)' : 1 番目の引数を 'class AddressInfo *[6]' から 'class AddressInfo *' に変換できません。
(新しい機能 ; ヘルプを参照)
指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。

とのエラーがでてしまっているのですが、
思いつくままにコードを修正してもエラーは増えるばかり、、、
どのような修正方法があるのでしょうか?
宜しくお願い致します。

GPGA

Re:メンバ変数に配列を格納しようとしました。

#2

投稿記事 by GPGA » 17年前

■aa.h 
private: 
 AddressInfo **m_AddressInfo; // AddressInfoは自作のクラス 
}; 


■aa.cc 
aa::aa(AddressInfo **ad) 
{
    m_AddressInfo = ad; 
}
 

ゆも

Re:メンバ変数に配列を格納しようとしました。

#3

投稿記事 by ゆも » 17年前

ポインタのポインタなんて存在するのですね。
勉強不足でした。。。
ありがとうございます。

ちなみに、配列からの取り出し方は以下でよろしいのでしょうか・・・?
AddressInfo *ai = *(m_AddressInfo);
AddressInfo res = ai[1];

GPGA

Re:メンバ変数に配列を格納しようとしました。

#4

投稿記事 by GPGA » 17年前

AddressInfo *ai = m_AddressInfo[1];
AddressInfo res = *ai;

ゆも

Re:メンバ変数に配列を格納しようとしました。

#5

投稿記事 by ゆも » 17年前

おお!
なるほど。ありがとうございました!
解決しました。m(__)m

閉鎖

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