c++ - 如果另一个类的构造函数需要参数,我该如何添加一个类成员?

标签 c++

我用 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/

相关文章:

c++ - 字符串数组到字符串类型 vector 的转换

c++ - 优化只有 3 个不同值的数组?如何设计?

c++ - 读取整数对直到文本输入文件中的换行符

c++ - push_back 到 Vector

c++ - 是否有已释放指针对象的既定指针值?

c++:运行时链接共享对象与主机应用程序,符号表问题

c++ - 计算 C++17 中 POD 类型的普通数组的字段?

c++ - 如何让它读cin两次?

c++ - 为什么这个右值调用不明确?

c++ - 将具有 wchar_t 数字值的 vector 转换为 wchar_t