有两个类,第二个类将继承第一个类。基类有虚函数,在派生类中没有虚函数。将在类child的虚函数表中找到的内容。它是空的还是根本没有创建?
class base
{
private:
int m_d;
public:
virtual void foo();
virtual void bar();
};
class derived : public base
{
int m_b;
void baz();
};发布于 2013-10-22 16:32:46
vtable是C++编译器的实现细节,因此没有标准答案。对于最小化间接性来说,每个vtable包含其所有基础的完整虚拟函数集是有意义的,但这仍然是一个实现细节。
发布于 2013-10-22 16:31:47
典型的解决方案是每个类都有一个vtable,因此派生类将有一个与基类的vtable相同的单独的vtable。这样做的目的是为了能够找到它是哪个类(就像做dynamic_cast时一样),只需拥有一个vPoint值。
https://stackoverflow.com/questions/19512778
复制相似问题