c 學習筆記(十一) 函式過載VS函式重寫

2021-07-06 04:18:34 字數 860 閱讀 8305

函式過載

必須在同乙個類中進行

子類無法過載父類的函式,父類同名函式將被名稱覆蓋

過載是在編譯期間根據引數型別和個數決定函式呼叫

函式重寫

必須發生於父類與子類之間

並且父類與子類中的函式必須有完全相同的原型

使用virtual宣告之後能夠產生多型(如果不使用virtual,那叫重定義)

多型是在執行期間根據具體物件的型別決定函式呼叫

class parent01

{public:

parent01()

{ cout<<"parent01:printf()..do"<

parent01類中的四個func函式是函式過載。

定義乙個子類:

class child01 : public parent01

{public:

//發生了名稱覆蓋,把父類中的沒有函式引數的,這個函式abcd名稱覆蓋了。

//在子類中,是不能過載父類的函式的。編譯器就是這麼做的,順從。。。。

void abcd(int a, int b)

{ cout<<"parent01:void func()"<

C 學習筆記 函式過載

c 函式過載詳解 我們在開瓶瓶罐罐的時候,經常會遭遇因各種瓶口規格不同而找不到合適的工具的尷尬。所以有時候就為了開個瓶,家裡要備多種規格的開瓶器。同樣是開個瓶子嘛,何必這麼麻煩?於是有人發明了多功能開瓶器,不管啤酒瓶汽水瓶還是軟木塞的紅酒瓶都能輕鬆開啟。然而開瓶器的問題也會發生到程式設計中。比如我們...

C 學習筆記 函式過載

1 什麼是函式過載 c 允許在同一作用域中宣告幾個功能類似的同名函式,這些同名函式的形參列表 引數個數 型別 順序 必須不同,常用來處理實現功能類似資料型別不同的問題。int add int a,int b double add double a,double b int main 注意 main函...

C 學習筆記二函式 函式過載

函式 都以static 開頭namespace 可變引數的函式 string country china vfunc names vfunc country sayhello tom 張大虎 狗剩 console.readkey static void vfunc params string val...