1、什麼是函式過載
c++允許在同一作用域中宣告幾個功能類似的同名函式,這些同名函式的形參列表(引數個數、型別、順序)必須不同,常用來處理實現功能類似資料型別不同的問題。
int add(int a, int b)
double add(double a, double b)
int main()
注意:main函式不能過載,因為程式的入口只有乙個2、為什麼需要過載
3、函式過載的底層是如何實現的?
當我們對函式只進行宣告,而不給出函式定義時。
int add(int a, int b);
double add(double a, double b);
int main()
編譯器會報如下錯誤:
我們可以看到,c++對引數不同的函式名,有不同的修飾規則,c++正是通過這種機制來實現函式過載的。
4、c語言中為什麼不能支援函式過載?
同樣的,當我們在.c檔案中只對函式只進行宣告,而不給出函式定義時,會產生如下錯誤。
我們看到在c語言中,函式名字修飾規則,只是加上下劃線,add—->_add,因此c語言中,不能區分同名函式,因而不支援函式過載。
c語言在鏈結的時候根據函式名找要呼叫的函式,而c++而是根據函式名和引數型別來尋找要呼叫的函式(函式名修飾規則);
C 學習筆記 函式過載
c 函式過載詳解 我們在開瓶瓶罐罐的時候,經常會遭遇因各種瓶口規格不同而找不到合適的工具的尷尬。所以有時候就為了開個瓶,家裡要備多種規格的開瓶器。同樣是開個瓶子嘛,何必這麼麻煩?於是有人發明了多功能開瓶器,不管啤酒瓶汽水瓶還是軟木塞的紅酒瓶都能輕鬆開啟。然而開瓶器的問題也會發生到程式設計中。比如我們...
C 學習筆記二函式 函式過載
函式 都以static 開頭namespace 可變引數的函式 string country china vfunc names vfunc country sayhello tom 張大虎 狗剩 console.readkey static void vfunc params string val...
c 學習筆記 函式過載 引用
今天總結一下c 基礎的知識點 一 函式過載的概念 函式可以擁有相同的函式名,引數列表 引數個數,引數型別 不同 通俗的講 過載就是乙個詞有多種不同的含義。準確地說 在c 程式中,同一作用域內函式可以擁有相同的函式名,引數列表 引數個數,引數型別 不同 二 函式過載的作用 過載函式通常用來命名一組功能...