你可以调用基类的构造函数来创建派生对象吗?

use*_*341 3 c++

class class1 {
public:
    class1(int x);

};

class class2 : public class1 {
};
Run Code Online (Sandbox Code Playgroud)

我可不可以做:

class2 my_class2(10);
Run Code Online (Sandbox Code Playgroud)

或者我是否必须再次定义构造函数class2(即使它完全相同)?

眠りネ*_*ネロク 6

由于C++ 11构造函数可以继承:

class class2 : public class1 {
public:
    using class1::class1;
};
Run Code Online (Sandbox Code Playgroud)

否则你必须做以下事情:

class class2 : public class1 {
public:
    class2(int x): class1(x) {}
};
Run Code Online (Sandbox Code Playgroud)

在构造派生类的对象时,无论如何都必须调用基类的构造函数.