我有这个课:

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/

10-12 17:29
查看更多