c primer要點 物件導向程式設計

2021-07-03 18:09:52 字數 915 閱讀 6925

1.不論從基類派生出來多少個派生類,對於每個靜態成員來說都只存在唯一例項,靜態成員遵循通用的訪問控制規則。

2.final可以防止繼承的發生。

3.dynamic_cast可以將基型別轉換為派生型別,將在執行時進行安全檢查。如確定安全,也可以用static_cast

4.覆蓋繼承虛函式,需保證形參型別完全一致;返回類也要匹配,例外是返回的是類本身的指標或引用,只不過要求b到d的型別轉換是可訪問的。

5.override標記覆蓋虛函式,編譯器將檢查,只有虛函式才能被overide覆蓋;final指定某個函式不能被覆蓋

6.某次函式的預設實參由本次呼叫的靜態型別決定。

7.乙個類有三種使用者:類的實現者、派生類成員、普通使用者。普通使用者只能訪問公有成員,派生類能訪問公有和保護成員。

派生訪問說明符對於派生類的成員能否訪問基類成員沒有影響,目的是控制派生類的使用者(派生類的普通使用者、派生類的派生類)對基類成員的訪問許可權。如公有繼承使基類的公有和保護成員成為派生類的公有成員。

對於**中某個給定節點來說,如果基類的公有成員是可訪問的,則派生類向基類的型別轉換也是可訪問的。

對基類的訪問許可權由基類本身控制,即使派生類的基類部分也是如此,所以基類的友元可以訪問基類內嵌在派生類中的部分。

using 宣告可改變成員的可訪問性,訪問許可權由改using之前的訪問說明符來決定。

8.派生類的作用域巢狀在基類作用域內;宣告在內層作用域的函式並不會過載宣告在外層作用域的函式,如果出現同名,則基類成員被隱藏。

9.預設情況下,基類預設建構函式初始化派生類物件的基類部分。如要用拷貝(或移動),必須在派生類建構函式初始值列表中顯示使用。

10.using宣告可用來繼承建構函式。通常情況下,using只是令某個名字在當前作用域可見。這裡,將使編譯器產生**。建構函式的using宣告不會改變訪問級別,不能指定explicit或constexpr。

C Primer 物件導向程式設計

1.要注意區分類和類物件,物件只能訪問public成員,而類和友元可以訪問private成員。而對於基類的protected成員,派生類可以訪問其基類的protected成員 友元中也可以訪問protected成員 不能通過派生類物件在類外訪問protected成員 這點與private類似 值得注...

c primer 物件導向程式設計

1.重構現象 因為派生類的建構函式只能初始化它的直接基類,所以這樣就出現了一種新的現象 重構,重構是很常見的,它是指在子類中重新定義父類的建構函式,已達到自己想要的建構函式。重構要注意的是一旦被重構,編譯器必須重新編譯這些類的 class pp class d1 public base class ...

C Primer 物件導向程式設計

1 在c 中,基類將型別相關的函式與派生類不做改變直接繼承的函式區分對待。對於某些函式,基類希望它的派生類各自定義適合自身的版本,此時基類就將這些函式宣告成虛函式 virtual function 2 在c 中,當我們使用基類的引用 或指標 呼叫乙個虛函式時將發生動態繫結。3 關鍵字virtual只...