可能重复:
内存中 C++ 对象的结构与结构
内存布局 c++ 对象
这可能是一个非常愚蠢的问题,但无论如何我都会问。我很好奇对象在内存中的样子。显然,它必须包含所有成员数据。我假设对象的函数不会在内存中重复(或者我错了?)。内存中的 999 个对象都一遍又一遍地定义相同的函数,这似乎很浪费。如果所有999个对象的内存中只有1个函数,那么每个函数如何知道要修改谁的成员数据(我特别想在底层知道)。是否有一个对象指针被发送到幕后的函数?也许每个编译器都不同?
另外,静态关键字如何影响这一点?对于静态成员数据,我认为所有 999 个对象都将使用完全相同的内存位置存储它们的静态成员数据。这个存储在哪里?我猜静态函数也只是内存中的一个位置,并且不必与实例化对象交互,我想我理解。