私の質問は次のとおりです。
class Foo
{
public:
Foo() {}
void setInt(int i) { myInt = i; }
int getInt() { return myInt; }
private:
int myInt;
};
class Bar
{
public:
Bar(Foo f) { /* do something with f.getInt() */ }
};
これで、Bar を vairable メンバーとして持つ別のクラスができました。
class BarUser
{
public:
BarUser();
private:
Bar bar;
};
BarUser のコンストラクターを作成したいのですが、整数として 3 を持つ Foo メンバーで Bar を初期化したいと考えています。すなわち:
Foo f;
f.setInt(3);
Bar b(f);
ただし、クラスメンバーとして Bar があるため、このコードをすべて初期化リストに書き込むことはできません... つまり、次のとおりです。
BarUser::BarUser() : bar(/* Foo after executing f.setInt(3) */)
{ ... }
代入演算子が Bar に許可されていないとします - 意図したとおりに初期化するにはどうすればよいですか?
ありがとう!