1.繼承的對象模型
- 父類中的所有非靜態成員屬性都會被繼承下去(沒有this指針的都不會被繼承,無論基類派生了多少子類,派生類對象都引用這個相同的、單一的、共享的靜態成員。靜態成員只存在一個實例。靜態變量是共享而不是繼承,他可以被子類共享但是不能繼承。
- 父類中的私有成員函數是被編譯器隱藏了所以訪問不到,但是確實被繼承下去了。
#include <iostream>
using namespace std;
class base
{
public:
int a;
static int f;
private:
int b;
protected:
int c;
};
class son :public base
{
public:
int e;
};
int main()
{
cout << "size of base is " << sizeof(base) << endl; //12
cout << "size of son is " << sizeof(son) << endl; //16
return 0;
}
tips:查看
2.繼承和析構的順序
先構造父類,再構造子類,析構的順序相反。