C 學習筆記 函式過載

2021-08-21 11:10:49 字數 1011 閱讀 7357

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 程式中,同一作用域內函式可以擁有相同的函式名,引數列表 引數個數,引數型別 不同 二 函式過載的作用 過載函式通常用來命名一組功能...