1. ホーム
  2. c++

[解決済み] 参照を宣言して、後で初期化する?

2022-02-16 14:20:24

質問

あるクラスへの参照があります MyObject しかし、正確なオブジェクトは、ある条件によって決まります。私はこのようなことをしたいのです。

MyObject& ref; 
if([condition]) 
  ref = MyObject([something]);
else 
  ref = MyObject([something else]);

コンパイラは、参照を宣言しても初期化しないことを許可しないので、今すぐにはできません。どうすればいいのでしょうか?

どのように解決するのですか?

initliazeする必要があります。しかし、条件付きで初期化したい場合は、次のようにすればよいでしょう。

MyObject& ref = (condition) ? MyObject([something]) : MyObject([something else]);