class Test
{
void func(){int i;}
};
int main()
{
cout<<sizeof(Test)<<endl; //gives 1
}
为什么sizeof(Test)不考虑函数的大小。函数真正存储在哪里?在谷歌中找不到任何解释这一点的链接。
编辑:如果提供除 wiki 之外关于类内部分的任何好的链接,那将是很好的。
最佳答案
如果它确实考虑了函数的大小,sizeof
将无法达到预期目的。例如,您可以使用 sizeof(Test)
来了解要分配多少内存来保存对象的实例。
但是该实例不包含该函数的拷贝,因为每个实例的函数都是相同的。精确存储函数的一个拷贝以备不时之需不受现有对象数量的影响。
关于c++ - 为什么 sizeof 运算符不计算函数的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27396485/