c 面試知識總結

2021-10-25 09:50:27 字數 740 閱讀 9129

子類能夠從父類繼承什麼,不能從父類繼承什麼?

能:派生類能夠繼承其基類的成員,但是基類必須將它的兩種成員函式區分開來:

一類是基類希望其派生類進行覆蓋的函式;另一類是基類希望派生類直接繼承而不要改變的函式;

派生類可以繼承定義在基類的成員,但是派生類的成員函式不一定有權訪問從積累繼承而來的成員(關於許可權訪問參考幾種繼承方式)

派生類建構函式

儘管在派生類物件中含有從基類繼承而來的成員,但是派生類並不能直接初始化這些成員,派生類也必須使用基類的建構函式來初始化它的基類部分。

繼承與靜態成員:

如果基類定義了乙個靜態成員,則在整個繼承體系中只存在該成員的唯一定義,不論從基類中派生出多少個派生類,每乙個靜態成員只存在唯一的例項。

訪問控制與繼承

友元關係與繼承

友元關係同樣也不能被繼承,基類的友元在訪問派生類成員時不具有特殊性,同樣地,派生類的友元也不能隨意訪問基類的成員

繼承的建構函式:

在c++11的新標準中,派生類能夠重用其直接基類定義的建構函式,乙個類只初始化它的直接基類,處於同樣的原因,乙個類也只繼承其直接基類的建構函式。

類不能繼承繼承預設、拷貝和移動的建構函式。如果派生類沒有直接定義這些建構函式,則編譯器將為派生類合成他們。

2.常成員函式如何呼叫

構造乙個常物件來呼叫常成員函式

r a(5,4)

a.print();

const r b(20,52)

b.print();

C 面試知識點總結

巨集定義求最大值 define max x,y x y x y const與define區別define 在編譯前執行,無資料型別,僅僅在編譯前做替換const存在於程式中資料段,分配空間,有資料型別 與c中 define的異同 在c 中的用法 1.與c中 define相同的功能 字元替換 2.保護...

面試 C語言C 小知識總結 1

1 關於宣告和定義的區別 變數可以被宣告多次但是只可以被定義一次 宣告 不分配記憶體空間 int a 這樣既是宣告也是定義 int a 3 定義 extern int a 宣告,通過extern關鍵字宣告變數而不是去定義它 extern int a 3 定義 函式的宣告和定義比較簡單,帶 就是定義,...

面試 C語言C 小知識總結(2)

1 重寫和過載的區別 範圍區別 被重寫的函式和重寫的函式在兩個類中,而過載和被過載的函式在同乙個類中 引數的區別 被重寫函式和重寫函式的引數一定相同,但是過載函式和被過載函式的引數列表一定不同 virtual的區別 重寫的基類中被重寫的函式必須要有virtual修飾而過載函式和被過載函式可以被修飾也...