为什么基类的析构函数必须为虚函数的原因-个人理解

假如一个基类类型的指针指向了一个派生类的对象,如果需要将指针delete时,假如基类的析构函数不为虚函数,这时就会只调用基类的析构函数,而指针指向的是派生类的对象,派生类的对象不包含基类的析构函数,这时候就像是拆房子的时候只把地基给拆了,地基上的建筑仍然存在。

而如果基类的析构函数为虚函数时,在delete时,编译器就会解析指针指向的对象是谁,这时候如果指向的是派生类的对象,就会先调用派生类的析构函数,再调用基类的析构函数。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章