国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++函數重載詳解及實例代碼

2020-01-26 14:25:23
字體:
來源:轉載
供稿:網友

C++函數的重載

定義

在同一個作用域中,函數名相同,函數的參數列表不同的函數之間構成重載關系,在不同作用域中的同名函數遵循標識符隱藏的原則

ATTENTION:重載與函數的返回值類型無關,因為聲明一個函數不需要返回類型,所以無法用來區分哪個函數

常函數和普通成員函數之間構成重載,重載時常對象調用常成員函數,一般對象調用一般成員函數

class A{  …  public:    void getVal()const{…}    void getVal(){…}};int main(){  const A a;  A b;  a.getVal(); //常函數  b.getVal(); //普通成員函數}

不同namespace中的函數也可以通過名字空間指令/名字空間聲明的方式讓他們在同一個作用域,進而構成重載關系
//overloaded functions in different namespaces

#include<iosteam>using namespace std;namespace ns1{  void fa(int i){cout<<"in ns1:i="<<i<<endl;}}namespace ns2{  void fa(double d){cout<<"in ns2:i="<<d<<endl;}}int main(){  //使用namespace 指令的方式  using namespace ns1;  using namespace ns2;  fa(10);  fa(3.14);  return 0;}

重載匹配原則

完全匹配>常量轉換/常量匹配>升級轉換>標準轉換>自定義轉換>省略號匹配
Note:編程中,盡量做到完全匹配,如果實在不能完全匹配,一般會根據上述原則進行選擇

重載原理

C++編譯器是通過對函數進行換名,將參數列表信息體現在底層函數名中,從而實現函數的重載,匯編函數名按照 <作用域+返回類型+函數名+參數列表> 的方式體現在匯編中,eg:_Z4showii:

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兰坪| 寻乌县| 和龙市| 墨玉县| 高阳县| 海伦市| 凌云县| 万年县| 城口县| 冕宁县| 工布江达县| 临朐县| 江源县| 霸州市| 定日县| 宁武县| 鹤庆县| 清流县| 留坝县| 旅游| 隆回县| 吉木乃县| 漳平市| 湘阴县| 江门市| 鹤山市| 江西省| 司法| 武隆县| 阿鲁科尔沁旗| 清水县| 蒲江县| 山西省| 盈江县| 鄂托克旗| 弥渡县| 怀集县| 广元市| 原阳县| 新宁县| 兴和县|