问题描述
|
这个问题已经在这里有了答案:
解决方法
我只是看到另一个主题中没有一个答案能清楚地回答它。
答案是:是和否。
由于vtable和vptr是实现定义的概念,并且不受C ++标准的强制要求,因此编译器可以自由选择任何方法,只要它可以动态分配
virtual
函数(纯函数或其他函数)即可。
因此,对于实现vtable和vptr的编译器,答案是“是”(或者很可能是“是”),而对于其他未实现vtable和vptr而是以其他方式实现动态分派的编译器,答案显然是“否”。
请参阅此主题:
除vtable外,如何实现C ++虚拟函数?