C++ 具有虚拟函数的类占用更多空间
有这样的代码:C++ 具有虚拟函数的类占用更多空间,c++,C++,有这样的代码: #include <iostream> class A{ int a; int fun(){} }; class B{ int a; virtual int fun(){} }; int main() { std::cout << sizeof(A) << " " << sizeof(B) << std::endl; std::cin.get(); retur
#include <iostream>
class A{
int a;
int fun(){}
};
class B{
int a;
virtual int fun(){}
};
int main()
{
std::cout << sizeof(A) << " " << sizeof(B) << std::endl;
std::cin.get();
return 0;
}
为什么类B比类A大4字节?任何具有虚拟函数的类都需要指向该类的vtable的指针。因此,有一个隐藏的成员是指针的大小
4 8