我的问题如下:假设我有:
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 作为成员变量:
class BarUser
{
public:
BarUser();
private:
Bar bar;
};
我想编写 BarUser 的构造函数,但是我想用一个 Foo 成员初始化 Bar,该成员的整数为 3。IE:
Foo f;
f.setInt(3);
Bar b(f);
但是,由于我将 Bar 作为类成员,因此我无法在初始化列表中编写所有这些代码......我的意思是:
BarUser::BarUser() : bar(/* Foo after executing f.setInt(3) */)
{ ... }
假设 Bar 不允许赋值运算符 - 我如何按预期初始化它?
谢谢!