虚析构函数

来源:互联网 发布:图片mv制作软件下载 编辑:程序博客网 时间:2024/06/03 11:15
虚析构函数
(1)虚析构函数即:定义声明析构函数前加virtual 修饰, 如果将基类的析构函数声明为虚析构函数时,由该基类所派生的所有派生类的析构函数也都自
动成为虚析构函数。
(2)基类指针 pbase 指向用new动态创建的派生类对象child时,用“delete pbase;”删除对象分两种情况
第一,如果基类中的析构函数为虚析构函数,则会先删除派生类对象,再删除基类对象

第二,如果基类中的析构函数为非虚析构函数,则只会删除基类对象,不会删除派生类对象,这样便出现了内存泄漏了



(1)虚析构函数的概念和用法很简单,但它在面向对象程序设计中却是很重要的技巧。专业人员一般都习惯声明虚析构函数,即使基类并不需要析构函数,也显式地定义一个函数体为空的虚析构函数,以保证在撤销动态分配空间时能得到正确的处理。
(2)构造函数不能声明为虚函数。这是因为在执行构造函数时类对象还未完成建立过程,当然谈不上函数与类对象的绑定。