您的位置:首页 > 其它

与虚函数相关的几点注意之三——构造与析构中的虚函数

2007-07-05 21:04 489 查看
【原文写于21 January 2007 ,

构造与析构中的虚函数

一个类的虚函数在它自己的构造函数和析构函数中被调用的时候,它们就变成普通函数了,不“虚”了。也就是说不能在构造函数和析构函数中让自己“多态”。
参考http://dev.csdn.net/…ae095.html

class ClassBase
{
public:
ClassBase() {
printOut(”Constructor in Base Class”);
foo();
}
virtual ~ClassBase() {
printOut(”Deconstructor in Base Class”);
foo();
}
virtual void foo() { printOut(”foo in Base Class”); }
};

class ClassDerived : public ClassBase
{
public:
virtual ~ClassDerived() {
printOut(”Deconstructor in Derived Class”);
foo();
}
virtual void foo() { printOut(”foo in Derived Class”); }
};

void main()
{
ClassBase * p =new ClassDerived;
delete p;
}

将打印

Constructor in Base Class
foo in Base Class
Deconstructor in Derived Class
foo in Derived Class
Deconstructor in Base Class
foo in Base Class
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: