我用 C++ 编写的代码不多,所以如果这是微不足道的,请原谅我。
我的类“Foo”看起来有点像这样:
class Foo {
public: Foo(int n) { }
};
另一个类“Bar”现在应该有一个类型为“Foo”的类成员。
class Bar {
private: Foo f;
};
这显然失败了,因为“Foo”没有不需要任何参数的构造函数。但是,Foo f(1);
之类的东西也会失败。
有什么办法可以解决这个问题吗?还是我应该在这里使用指针?
最佳答案
class Bar {
public:
Bar():f(0) { }
explicit Bar(int n):f(n) { }
private: Foo f;
};
自己写c-tors
, 使用 initializer-list
, 或写 c-tor
Foo
中没有参数, 或使用 pointer
,或在 C++11
你可以写
class Bar {
public:
private: Foo f = Foo(1);
};
关于c++ - 如果另一个类的构造函数需要参数,我该如何添加一个类成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11930970/