与虚函数相关的几点注意之三——构造与析构中的虚函数
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
“
构造与析构中的虚函数
一个类的虚函数在它自己的构造函数和析构函数中被调用的时候,它们就变成普通函数了,不“虚”了。也就是说不能在构造函数和析构函数中让自己“多态”。
参考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
“
相关文章推荐
- 子函数中定义静态类的对象(还不错哦)(注意区别,析构与构造在子函数中的行为)
- 虚函数:特殊函数的讨论 - 构造,析构
- 与虚函数相关的几点注意之一——virtual的向后传递
- 与虚函数相关的几点注意之二——虚析构函数
- 虚函数、继承需要注意的几点
- C++默认编写并调用了那些函数(构造,析构,赋值)!!!
- 类中嵌套另一个类时,调用构造,析构,拷贝,赋值运算符等函数的次序
- 构造,析构, 在构造析构中调用虚函数, 显式析构
- C/C++函数中局部对象的构造与析构时机
- fork函数注意的几点
- 笔记:函数相关注意的地方
- 拷贝构造,深度拷贝,关于delete和default相关的操作,explicit,类赋初值,构造函数和析构函数,成员函数和内联函数,关于内存存储,默认参数,静态函数和普通函数,const函数,友元
- 复数类的相关运算(判断大小及四则运算)->(构造,析构,拷贝复制,运算符重载)
- msgbox函数和inputbox函数应该注意的几点
- VB传入回调函数指针至VC编写的DLL函数中,应注意的几点
- 虚函数中调用虚函数要注意的地方
- 关于指针变量作函数参数的几点注意
- 美工相关知识应该注意的几点(转)
- 虚函数之:构造和析构
- Python函数的几点需要注意的细节