这句话一定正确么?在什么情况下不正确呢?

来源:百度知道 编辑:UC知道 时间:2024/07/07 01:13:09
[只要一个类要作为其他类的基类, 那么它就一定有虚函数, 只要一个类中有虚函数, 那么它的析构函数就一定也要是虚的。]

如题。
[你可以把析构函数定义成虚构的函数]
这句话该怎么理解?

都是错误的,基类可以没有虚函数,析构函数也不一定是虚函数,当然你可以把析构函数定义成虚析构函数,根据你的实际情况来决定。
有的时候你的子类分配了内存,你用基类指针指向子类对象,然后用delete删除基类指针,则不会调用子类的析构函数了,子类中分配的内存就没有释放,这个时候就需要将析构函数设置成虚函数,delete基类指针就会调到子类的析构函数,从而可以删除子类分配的内存,需要根据实际情况来看是否需要用虚函数,从语法上编译的角度看你不把析构函数定义成虚函数是没有问题的