[英]Can you call a constructor for a base class to create a derived object?
class class1 {
public:
class1(int x);
};
class class2 : public class1 {
};
我可不可以做:
class2 my_class2(10);
或者我是否必须为class2
再次定义构造函数(即使它完全相同)?
由于C ++ 11构造函数可以继承:
class class2 : public class1 {
public:
using class1::class1;
};
否则你必须做以下事情:
class class2 : public class1 {
public:
class2(int x): class1(x) {}
};
在构造派生类的对象时,无论如何都必须调用基类的构造函数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.