1,使用初始化列表初始化參數(shù)的順序不是根據(jù)參數(shù)列表里聲明的順序,而是根據(jù)該成員變量在類中聲明的順序決定的。
et.
class A
{
public:
A();
~A();
private:
int a;
byte b;
}
A::A():b(1),a(b)
{
}
a的值無法確定,而b是1
2,在data語義學(xué)中
找到了一個(gè)一年困擾過我的問題,總算得到解答
class X;
class A:class X;
class B:class X;
class Y:class A, class B;
sizeof(X):1
sizeof(A):8
sizeof(B):8
sizeof(Y):12
編譯器對(duì)空類會(huì)做優(yōu)化給予一個(gè)char的大小
至于A,B 由于有繼承關(guān)系存在虛函數(shù)表,size應(yīng)為5,在4字節(jié)對(duì)其的編譯器下sizeof為8,當(dāng)然設(shè)定字節(jié)對(duì)齊為1的話應(yīng)該是5