我正在关注本教程,试图了解和背后的virtual table整个过程。pointervirtual functions in C++
不确定,当我有这样的代码时:
D1 d1;
Base *dPtr = &d1;
dPtr->function1();
为什么我需要所有这些virtual table管理?为什么编译器根本不分配d1(或基,如果没有的话)的内存地址覆盖virtual function?
我的意思是:如果它需要 D1functon1()地址或Base functon1()地址,它可以在编译时详细说明。当时就知道了。为什么稍后在运行时浪费时间和资源virtual tables?
我错过了这一点。花哨的例子?