C 過載和繼承使用的分析

2021-09-25 17:05:23 字數 813 閱讀 1623

#include #include #include #include class h2o

;class person

;person::person()

person::~person()

void person::eat()

void person::eat(int num)

class man : public person ,virtual public h2o

;man::man()

man::~man()

void man::eat()

void man::eat(int num)

void man::hash2o()

/*而過載方式的繼承類被強轉成基類再呼叫過載函式,則呼叫的是基類的函式。

*/void printf_eat_int(person *p,int num)

/* 使用虛函式繼承時,當繼承類被強轉成基類後呼叫虛函式,呼叫的還是繼承類的虛函式。

*/ void printf_eat(person *p)

void hash2o(h2o *p)

int main(void)

/*$ ./virtual

person::person()

man::man()

person + 4

man + 4

man eat meat

man eat meat

man has h2o

man::~man()

person::~person()

*/

繼承和過載

繼承的目的 實現 重用 派生的目的 當新的問題出現原有程式無法解決 或不能完全解決 時,需要對原有程式進行改造 1 當建立乙個類時,您不需要重新編寫新的資料成員和成員函式,只需指定新建的類繼承了乙個已有的類的成員即可。這個已有的類稱為 基類,新建的類稱為 派生類。2 乙個類可以派生自多個類,這意味著...

c 的繼承關係和函式過載

主要關注兩個方面 1 子類和基類之間變數重名 2 函式重名,但是形參列表不同 第乙個 眾所周知,子類繼承基類的所有變數,那麼如果子類的成員變數和父類的某一變數重名,通過父類的引用或者指標訪問的變數是父類的變數還是子類的呢?寫個程式測之。結果為 4 這說明,在編譯期間,基類的指標取變數值為基類自己的變...

C 過載和繼承混用會怎樣?

overload就是過載,大家都會。但是大家有沒有想過,我們呼叫乙個過載方法的時候會呼叫哪個呢?答案是和簽名最接近的乙個。大家是不是看到這裡已經開始覺得這個部落格很無聊了,都是這麼簡單的內容。沒關係,我們慢慢深入。我們知道方法為了能夠減少書寫個數,提供了乙個叫預設引數的東西 voidp object...