在单继承中,指向虚表的指针的大小是否总是等于 void*
的大小?说,
class vft { virtual ~vft(); }
assert (sizeof(vft) == sizeof(void*));
这个断言总是正确的吗?
最佳答案
不,虚拟主义是实现定义的。它是一个编译器实现细节。
所以你不能说那永远是真的。
此外,您应该避免自己编写任何代码(如问题中的代码),这些代码假定标准将开放的细节作为编译器实现细节,因为这会使您的代码不能 100% 跨编译器移植并且可能甚至在某些编译器上会彻底失败。
关于c++ - 虚函数表指针的大小是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7096417/