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(即使它完全相同)?
由于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)
在构造派生类的对象时,无论如何都必须调用基类的构造函数.
| 归档时间: |
|
| 查看次数: |
51 次 |
| 最近记录: |