c++基礎複習——繼承的對象模型以及構造析構順序

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.繼承和析構的順序

先構造父類,再構造子類,析構的順序相反。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章