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.