#includeDifferent compilers produce different result.#include #include #include #include using std::cout; using std::cin; using std::endl; class Base { }; class Derived1:public Base { int i; }; class Derived2:public Base { public: Base b; int i; }; class Derived3:public Base { public: Derived1 d1; int i; }; int main(int argc, char * argv[]) { cout << sizeof(Base) << endl; cout << sizeof(Derived1) << endl; /*Derived2 d2; cout << sizeof(d2) << endl; cout << &d2 << endl; cout << &d2.b << endl; */ Derived3 d3; cout << sizeof(d3) << endl; return 0; }
MS gives 8 while GCC gives 12. This is a rare case I have ever experienced that MS beats GCC.