別クラスにクラスを渡す – プログラミング – Home

別クラスにクラスを渡す
 
通知
すべてクリア

[解決済] 別クラスにクラスを渡す


森田
 森田
(@森田)
ゲスト
結合: 19年前
投稿: 2
Topic starter  

以下のようなことは可能ですか?
その方法を教えてください。

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
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

> void Init(A &c){aaa = c;};// ここでえらー
A a1, a2;
a1 = a2;

が出来ないからでしょう

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


返信引用
YuO
 YuO
(@YuO)
ゲスト
結合: 22年前
投稿: 320
 

B::aaaは参照型ですから,初期化しなければなりません。
ところが,Bのコンストラクタでは初期化されていませんから,エラーがでます。

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


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

「以下のようなこと」ってなに?

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

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


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

ヴぉけてました。orz

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

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

a3 = a2;

でしたね。


返信引用
森田
 森田
(@森田)
ゲスト
結合: 19年前
投稿: 2
Topic starter  

ぽいんたを使うことにしました。
ありたとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました