C++基类函数被覆盖后基类指针调用派生类同名函数,那用基类对象调用的是基类的还是派生类的那个函数?

2025-04-13 01:06:45
推荐回答(1个)
回答1:

如果函数不是 virtual 的,则进行的是静态绑定,即在编译期间就决定了其调用的函数。对于上面的程序来说, delete Bp2;,即使基类指针Bp2实际上指向的是派生类对象,但是编译器也会把这个基类指针和指向类型(基类)的析构函数进行静态绑定,从而达不到调用派生类析构函数的目的。