首先,我知道sizeof取决于机器和编译器的实现.我使用的是Windows 8.1.x64,gcc 5.3.0.,没有标志传递给编译器.
我的大学讲座中有以下代码:
#include <iostream>
class A
{
public:
int a;
int b;
A(){ a = 1; b = 2; }
};
class S1 : public A {
public:
int x1;
S1(){ x1 = 5;}
};
class S2 : public A {
public:
int x2;
S2(){ x2 = 6;}
};
class S12 : public S1, public S2 {
public:
int x12;
S12(){ x12 = 7;}
};
int main()
{
std::cout << "S1: " << sizeof(A) << std::endl;
std::cout << …Run Code Online (Sandbox Code Playgroud) c++ ×1