類的學習筆記

2021-08-13 11:59:15 字數 970 閱讀 9771

1.物件、指標和引用的靜態型別決定了我們能夠使用什麼名字的成員,只能使用靜態型別及其基類的成員名字。但呼叫的該名字的成員是動態型別的該成員。

2.我們通過panda的物件、引用和指標使用了某個名字,程式會並行的在 endangered和bear/zooanimal這兩棵子樹種查詢該名字,如果名字在超過一棵子樹中被找到,則該名字具有二義性。

3.如果某個類在派生的過程中出現了很多次,則派生類中將包含該類的多個子物件。

4.派生類的建構函式只初始化它的直接基類成員,而其間接基類由其直接基類初始化。

5.在虛繼承體系中,虛基類由最底層的派生類來初始化,而不是按照普通的構造規則。

6.c++用來解析過載函式呼叫的規則:在看到是否有個函式可取用之前,

c++首先確認這個函式對此呼叫之言是最佳匹配。找出最佳匹配之後才檢驗可取用性。

7.對於template引數而言,介面是隱式的,奠基於有效表示式。多型則是通過模板具現化和函式過載解析發生於編譯期。

8.template 最好使用typename,雖然class也可以,但是可以更好地說明這是乙個模板而不是乙個類。 typename還用來表明巢狀從屬類是乙個型別名稱。

9.template

class msgsender

;template

class loggingmsgsender: public msgsender {

base class templates 有可能被特化,而那個特化版本可能不提供乙個一般性templates相同的介面,因此往往拒絕在templatized base classes內尋找繼承而來的名稱,所以它根本就不進入模板基類中查詢。

有三種解決辦法:

1.在呼叫的模板基類成員函式前加this->;

2.使用using宣告; (它還可以將乙個被掩蓋掉的基類介面帶入乙個派生類作用域內)

3.直接作用域操作符 msgsender::。(最好不用這種方式,因為它會組織virtual多型的發生)

類的學習筆記 一

上課時,老師給我們了乙個小例子,主要學習c 記憶體使用問題 include using namespace std class base public virtual void print cout n base class has virtual function class derived pu...

C vector 類學習筆記

vector容器型別vector容器是乙個模板類,可以存放任何型別的物件 但必須是同一類物件 vector物件可以在執行時高效地新增元素,並且vector中元素是連續儲存的。vector的構造 函式原型 template explicit vector 預設建構函式,vector物件為空 expli...

CStdioFile類學習筆記

cstdiofile 類的宣告儲存再 afx.h 標頭檔案中。cstdiofile 類繼承自 cfile 類,cstdiofile 物件表示乙個用執行時的函式 fopen 開啟的c 執行時的流式檔案。流式檔案是被緩衝的,而且可以以文字方式 預設 或者二進位制方式開啟。cstdiofile 類不支援 ...