构造函数和析构函数能否定义成虚函数 Nikola_Jokic 2023-12-21 51 阅读1分钟 构造函数不能定义成虚函数 原因:生成一个对象,需要调用构造函数,如果构造函数是虚函数,那么首先需要知道虚函数表指针,然后根据虚函数表指针找到虚函数表,而虚函数表指针需要在构造函数里初始化,这就矛盾了。 析构函数一般定义成虚函数 原因:防止内存泄漏,当存在继承关系的时候,析构函数定义成虚函数,在子类析构时,会先调用子类的析构函数,然后调用父类析构函数。