C ++中的虚拟构造函数
仅当我们具有指向派生类对象的基类指针时,虚拟机制才起作用。
在C++中,构造函数不能是虚拟的,因为执行类的构造函数时,内存中没有虚拟表,这意味着尚未定义虚拟指针。因此,构造函数应始终是非虚拟的。
但是虚拟析构函数是可能的。
范例程式码
#include<iostream>
using namespace std;
class b {
public:
b() {
cout<<"Constructing base \n";
}
virtual ~b() {
cout<<"Destructing base \n";
}
};
class d: public b {
public:
d() {
cout<<"Constructing derived \n";
}
~d() {
cout<<"Destructing derived \n";
}
};
int main(void) {
d *derived = new d();
b *bptr = derived;
delete bptr;
return 0;
}输出结果
Constructing base Constructing derived Destructing derived Destructing base
热门推荐
10 简短的祝福语12字
11 新年给妹妹祝福语简短
12 妹妹生日祝福语简短唯美
13 对儿子祝福语简短精辟
14 长辈钻石婚祝福语简短
15 最搞笑生日祝福语简短
16 教练生日祝福语 简短独特
17 启程出发路途祝福语简短
18 奶奶生日感恩祝福语简短