- 博客(4)
- 收藏
- 关注
原创 虚析构与虚函数
虚析构与虚函数 1)当我们释放一个子类对象 delete derive;先调用子类析构函数,再调用父类析构函数 当我们释放一个指向子类的父类指针 base *p=new derive;delete p;若父类析构函数没有声明为虚函数,在delete p调用析构函数时,只会看指针的数据类型,而不会去看赋值的对象,这样就会造成内存泄露,即只执行父类的析构函数,不执行子类的析构函数; 因此当需要使用基类对派生类的对象操作时,如父类指针指向子类对象,需要将父类析构函数声明为虚,这样delete p时,先调用子类析构
2021-09-28 11:12:32
252
原创 # 父类指针指向子类对象
这里写自定义目录标题父类指针指向子类对象基类中没有定义虚函数时当基类中定义虚函数时 父类指针指向子类对象 基类中没有定义虚函数时 1.如果以一个基础类指针指向一个衍生类对象(派生类对象),那么经由该指针只能访问基础类定义的函数 2.如果以一个衍生类指针指向一个基础类对象,必须先做强制转型动作(explicit cast),这种做法很危险,也不符合生活习惯,在程序设计上也会给程序员带来困扰。(一般不会这么去定义) 3.如果基础类和衍生类定义了相同名称的成员函数,那么通过对象指针调用成员函数时,到底调用那个函数
2021-09-03 11:36:41
321
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人