C 的類class以及繼承 虛函式等某些小解釋

2021-10-08 20:29:26 字數 736 閱讀 8612

c語言沒class,c++才有,類似struct結構體,他們唯一的區別就是struct中的預設訪問控制許可權是public,而class的預設訪問控制許可權是private

private只能在類內訪問,public可以在類外訪問,c++類class,類內屬性一般定為私有private,類內函式才是共有public

類內函式為公有,通過呼叫類內函式設定屬性,避免屬性值混亂,如:

如果類內屬性age定義為公有,那就可以設成200,這明顯就是錯的,所以我們可以通過類內函式setage可對傳進來的值進行限定,符合年齡規則才進行修改設定。

類函式定義:可在類內直接定義,或者在類內宣告函式,類外定義函式,定義函式名前需加類名修飾符。如有個clock類,裡面有個函式sethour(),如果你在類外定義則須設定 void clock::sethour(),須加上類名修飾符。

子類繼承父類,子類可直接使用父類宣告的函式,但不能直接設定私有的屬性變數,除非把私有的變為protect,protect專為繼承服務。

初始化類屬性,不用寫返回值,void也不用,如果沒定義程式會自動定義乙個空的建構函式,寫了的話初始化物件即可以傳值初始化。

父類有個成員函式print,列印出來,輸出1,子類也有個成員函式print,列印出來輸出2,如果子類呼叫print,系統就不知道你用哪個,因為子類也可以呼叫父類的函式,這時候就要給父類裡的print函式前加virtual,子函式被呼叫print函式時輸出的就是2。

C 類的繼承以及虛函式的使用小示例

最近在複習c 基礎知識,感覺學的時候學的相當不走心,好多知識不甚了解。如今回過頭來認真的重新學一遍,發現了好多華點哦。算是重新學習吧,還帶點 溫故而知新 的意味。include include includeusing namespace std class person 無引數建構函式,設定預設值...

c 類大小(涵蓋繼承 虛繼承 虛函式表)

涉及到c 中求類大小時需要特別注意一下幾點 為類的非靜態成員資料的型別大小之和 有編譯器額外加入的成員變數的大小,用來支援語言的某些特性 如 指向虛函式的指標 虛繼承 多重繼承 為了優化訪問效率,進行的邊緣調整 與類中的建構函式,析構函式以及其他的成員函式無關 5.私有繼承,會去繼承之前的私有成員變...

虛函式 虛繼承 C

關於虛表,我們就要用到乙個關鍵字 virtual,可以修飾函式,也可以修飾類。類的成員函式被virtual修飾之後,就成為了虛函式 修飾類,主要是虛繼承。在此之前,我們首先要了解乙個概念 物件模型,也就是說,乙個基類形成之後,裡面的成員是怎麼存放的,當派生類繼承基類之後,派生類的成員是怎麼存放的。我...