[英]Share functionality of a class between two or more libraries with pure virtual functions
[英]class with virtual functions takes more space
有这样的代码:
#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;
}
输出为:
4 8
为什么B类比A类大4个字节?
任何具有虚函数的类都需要一个指向该类的vtable的指针。 因此,有一个隐藏的成员,它的大小就是指针的大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.