我有这个课:
class A {
B b;
// snip.
}
只要B具有不带参数的构造函数或默认构造函数,此方法就可以正常工作。
但是,如果需要将B构造为B(x),应如何修改代码。
一种明显的方法是使用new / delete和B *,但我很好奇是否可以不使用动态内存吗?
最佳答案
使用member-initialization-list将成员变量初始化为:
class A {
B b;
C c;
public:
A() : b(10){} //if B's constructor takes int, for example!
//Or
A(T x) : b(x), c(x) {}
//^^^^^^^^^^^^ this is called member-initialization-list
}
关于c++ - 对象构造[c++],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7025514/