这个没理清楚,有点混乱,先记录下现在的理解
1、首先,每个类的对象,都有一个虚表指针,指向该类的虚函数表;如果一个基类指针指向子类对象时,对于非虚函数,他只会调用子类从基类继承来的成员函数,对于从基类继承的虚函数,如果子类重载了基类的虚函数,则该指针调用的是属于子类的那个被重载的函数,如果虚函数未被重载,就调用基类的虚函数。还有就是,基类的析构函数应该声明为虚函数,因为不是虚函数的话,在用父类指针析构子类对象时,调用的就是父类的析构函数,这样可能导致子类并没有被析构回收,内存泄漏
C++的虚函数,虚表指针,基类指针指向子类对象
最新推荐文章于 2021-05-23 15:49:04 发布