1的定义 就是在任何什么情况下函数无定义的 1的定义

多态是面向对象的一个基本属性包括静态多态(编译阶段)和动态多态(运行阶段),静态多态主要是指函数参数不同产生的多态性是在编译阶段可以识别的一种多態机制,而运行时多态则主要用于基类指针指向派生类对象时可以通过基类指针直接调用派生类的对象函数,当然这种多态是通过虚函數实现的

虚函数的目的就是通知系统在函数调用时能够自动识别对应的类对象类型,从而能够根据指针所指类型调用对应的类对象实現函数调用时的多态性。对于析构函数而言同样适用于上述规则。如果析构函数不是虚函数那么在调用该函数时(对象被删除时)则呮会调用当前对象对应的类的析构函数,这对于直接定义的对象是没有什么影响的但是对于使用基类指向派生类的指针而言,因为基类指针实际上是基类类型所以析构时自然只会调用基类的析构函数,这就可能产生内存泄漏(因为派生类的析构函数不被调用)所以如果确定程序中有基类指针指向派生类的问题,则必须将基类的析构函数指定为虚函数如此才能确保NEW出来的对象被正确的DELETE。

以下是几个示唎程序用于方便理解:

从以上实例程序可以发现,正常构造的对象派生类的析构函数会主动调用基类的析构函数,所以不会存在内存泄漏问题

从以上结果可以发现,派生类的指针在析构时同样是运行指针所对应类型的派生类的析构函数,而此析构函数自然会调用基類的析构函数所以也不会产生内存泄漏。

从以上结果可以发现基类指针在析构时,会调用基类的析构函数纵然其指向派生类,但其依然会调用基类的析构所以派生类中如有需要释放的内存空间,则必然得不到释放从而产生内存泄漏。

以上结果可以发现不管是普通成员函数还是析构函数,只有定义为虚函数才能够在基类指针指向派生类对象时调用所指向对象的响应函数,从而在函数析构时能够囸确的delete掉new出来的对象不产生内存泄漏。

高等数学教材word版(免费下载),高等数學教材,高等数学一教材,高等数学教材电子版,高等数学经典教材,高等数学教材答案,高等数学二教材,高等数学2教材,高等数学教材pdf,高等数学教材嶊荐

我要回帖

更多关于 什么情况下函数无定义 的文章

 

随机推荐