对象如何在C++中存储在内存中?
对于常规课程,如
class Object
{
public:
int i1;
int i2;
char i3;
int i4;
private:
};
Run Code Online (Sandbox Code Playgroud)
使用Object作为数组的指针可以用来访问i1如下?
((Object*)&myObject)[0] === i1?
Run Code Online (Sandbox Code Playgroud)
关于SO的其他问题似乎暗示将结构转换为指针将指向POD类型的第一个成员.如果有构造函数的类,这有什么不同?另外,对于非POD类型,它有何不同?
编辑:
因此,在记忆中,上述课程的布局如下:
[i1 - 4bytes][i2 - 4bytes][i3 - 1byte][padding - 3bytes][i4 - 4bytes]
Run Code Online (Sandbox Code Playgroud)