別クラスにクラスを渡す

[戻る]
森田 2005/08/17(水) 11:42:21
以下のようなことは可能ですか?
その方法を教えてください。

class A
{
public:
  A(){};
};

class B
{
public:
  B(){};// ここでえらー
  void Init(A &c){aaa = c;};// ここでえらー
  A &aaa;
};

void func()
{
  A aa;
  B bb;

  bb.Init(aa);
}

aaの内容をbbのaaに同じものを渡して
中身は共有したいので参照したいのですが
C2758: 'aaa' : オブジェクト コンストラクタの初期化リストで初期化されませんでした。
と、えらーになります。

Blue 2005/08/17(水) 11:48:16
>   void Init(A &c){aaa = c;};// ここでえらー
A a1, a2;
a1 = a2;

が出来ないからでしょう

# エラーぐらいカタカナに変換してもらいたいものです。

YuO [E-Mail] 2005/08/17(水) 11:58:18
B::aaaは参照型ですから,初期化しなければなりません。
ところが,Bのコンストラクタでは初期化されていませんから,エラーがでます。

というわけで,ちゃんと初期化するか,ポインタを使いましょう。

επιστημη [E-Mail] 2005/08/17(水) 12:05:04
「以下のようなこと」ってなに?

「B が A& をメンバとして持ちたい」 ってことですか?
ならばBのコンストラクタがメンバであるA&を初期化できなくてはなりません。
それさえすれば可能です。

# てゆっか、'参照体'を理解してますか?

Blue 2005/08/17(水) 12:36:39
ヴぉけてました。orz

> A a1, a2;
> a1 = a2;
(コピー)じゃなくて

A a1;
A &a2 = a1, &a3; // ここでエラー

a3 = a2;

でしたね。

森田 2005/08/17(水) 12:50:21
[[解決]]
ぽいんたを使うことにしました。
ありたとうございました。

古いスレッドには追加発言できません。