調試時可以看到每個類對象的虛函數指針,這是由編譯器為每個對象配置設定的。
class VirtualTest {
public:
virtual void vfunc1() { cout << "virtualTest::vfunc1()\n"; };
virtual void vfunc2() {};
};
class DervVirTest :public VirtualTest {
public:
void vfunc1() override { cout << "dervVirTest::vfunc1()\n"; };
};
int main() {
VirtualTest vt1;
VirtualTest vt2;
DervVirTest dvt;
return 0;
}
調試時類對象vt1,vt2,dvt 的成員變量如下圖: