抽象类的用户定义构造函数
user defined constructor for an abstract class
我已经搜索了抽象类是否存在构造函数。我发现答案是肯定的,这些构造函数可以由派生类对象调用或使用。
抽象类的用户定义构造函数怎么样?
我们可以为抽象类编写或定义默认、参数化或复制构造函数吗?
抽象类的用户定义构造函数怎么样?
是的
我们可以编写或定义默认、参数化或复制构造函数吗 抽象类??
是的
抽象类不能实例化,由于它意味着基类,因此您应该为它定义一个虚拟析构函数。
演示:http://coliru.stacked-crooked.com/a/a4b851e70667bb59
在
基类中具有受保护的构造函数是很常见的:它们用于初始化类的私有变量。对于派生类的构造函数,隐式或显式调用它们:
- 隐式调用复制构造函数的默认值
- 必须显式调用参数化构造函数
例:
class Base {
private int i;
public:
Base(int val) {
i = val;
}
virtual ~Base() { // always a virtual dtor in base class ...
}
// other methods ...
};
class Derived: public Base {
...
public:
Derived(): Base(0) { // explicit call necessary because no default ctor in Base
...
}
...
};
建议使用虚拟析构函数,因为它可确保如果任何子类具有自定义析构函数,则会调用该析构函数。
相关文章:
- 具有enable_if外部类原型的模板类构造函数定义
- 构造函数定义中类声明中的模板值
- C++中的继承和构造函数定义
- 如何使用模板化构造函数定义演绎指南?
- 构造函数定义C
- 不正确的成员构造函数定义
- 具有虚拟多重继承的构造函数定义
- C++谷歌测试在哪里放置测试夹具构造函数定义
- 模板类定义中的模板构造函数定义
- C++下面给出的代码中的构造函数定义差异
- 带继承的构造函数定义
- 无法访问构造函数定义之外的变量
- 调用构造函数定义中的函数后收到Segmentation Fault 11错误
- 将具有默认值的构造函数定义为组合对象的私有字段
- 防止重新定义构造函数定义的方法
- 继承构造函数-定义可移植的固定大小类型(C++)
- 在类的私有部分为复制构造函数定义原型如何防止类的复制
- 如何指定继承类的构造函数定义
- 了解默认移动构造函数定义
- 理解构造函数定义块的语法变化