为什么sizeof运算符不计算函数的大小

InQ*_*ive 0 c++ sizeof

class Test
{
   void func(){int i;}
};

int main()
{
   cout<<sizeof(Test)<<endl; //gives 1
}
Run Code Online (Sandbox Code Playgroud)

为什么sizeof(Test)不考虑函数的大小.功能在哪里真正与它的身体存储?在Google中找不到任何链接来解释这一点.

编辑:如果除了维基之外提供有关类内部分的任何好的链接,那将是很好的.

Dav*_*rtz 11

如果它确实考虑了函数的大小,sizeof那么它的预期目的就没用了.例如,您可能会sizeof(Test)知道要分配多少内存来保存对象的实例.

但是该实例不包含该函数的副本,因为该函数对于每个实例都是相同的.在需要时精确存储一个函数副本的需要不受存在的对象数量的影响.