C++:函數重載

1.概念

  • 指同名函數的關係。
  • C++允許在同一作用域中聲明幾個功能類似的同名函數,這些同名函數的形參列表(參數個數類型順序)必須不同

2.C/C++函數符號生成規則

  • C函數符號生成規則和C++函數符號生成規則是不同的
.c
函數符號生成規則       函數名
int Sum(int a, int b);            //_Sum
double Sum(double a, double b);   //_Sum
float Sum(float a, float b);      //_Sum
.cpp
函數符號生成規則      函數原型
int Sum(int a, int b);            //?Sum@@YAHHH@Z
double Sum(double a, double b);   //?Sum@@YANNN@Z
float Sum(float a, float b);      //?Sum@@YAMMM@Z
  • 函數原型
函數返回值 函數名稱(形式參數列表)    <==函數原型(函數頭部)
{
	函數體
}
  • 函數原型生成函數符號說明圖

函數符號說明圖

3.函數重載對函數原型的依賴

返回值     ×
函數名稱   ×
函數的形參列表:
	1.參數類型不同   √
	2.形參順序不同   √
	3.形參個數不同   √

4.函數重載的三要素

  • 同名
  • 不同參
  • 同作用域

5.重載決議

  • 通過調用點,拿實參類型去找對應函數的過程

6.就近原則

  • 使用一個變量時,若當前作用域有,則使用當前作用域中的數據;當前作用域沒有的話,才使用更高作用域中的數據
  • 注:不同作用域下,同名的變量可以共存
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章