Consider the following two classes:
class A
{
private:
int n;
public:
int m;
};
class B
{
private:
int n;
int m;
};
Theoretically, the memory layout of these two classes may be different because A has different access types for each member. The C++ Standard allows an implementation to store such members in non-adjacent memory addresses. However, in practice, I'm not aware of any compiler that does so. Under all existing compilers, the memory layout of the two classes is identical.