如果我们编写虚函数,它会在该类的对象中添加一个虚表。虚拟析构函数也是如此吗? vtable是用来实现析构函数虚化的吗
最佳答案
是的。当通过基类指针删除对象时,需要一些信息来允许调用正确的析构函数。该信息是小整数索引还是指针并不重要(尽管动态链接可能暗示它是一个指针)。自然地,该信息需要与指向的对象相邻(在内部)。
将任何类型的虚方法(包括析构函数)添加到以前没有的类中,都会增加 sizeof(class)。
关于c++ - Virtual destructor和Vtable之间有什么关系吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1436617/