C++中对象是如何存储在内存中的?
对于一个普通的类,例如:
class Object
{
public:
int i1;
int i2;
char i3;
int i4;
private:
};
可以使用对象的指针作为数组来访问i1,如下所示?
((Object*)&myObject)[0] === i1?
在Stack Overflow上的其他问题似乎暗示将结构体转换为指针后,对于POD类型它会指向第一个成员。如果有构造函数的类与此有何不同(如果有的话)?对于非POD类型又有何不同之处?
编辑:
因此,在内存中,上述类是否像下面这样布局?
[i1 - 4bytes][i2 - 4bytes][i3 - 1byte][padding - 3bytes][i4 - 4bytes]