C++筆記 第二十九課 類中的函式過載---狄泰學院
阿新 • • 發佈:2018-11-08
如果在閱讀過程中發現有錯誤,望評論指正,希望大家一起學習,一起進步。
學習C++編譯環境:Linux
第二十九課 類中的函式過載
1.函式過載回顧
函式過載的本質為相互獨立的不同函式
C++中通過函式名和函式引數確定函式呼叫
無法直接通過函式名得到過載函式的入口地址
函式過載必然發生在同一個作用域中
2.類中的過載
類中的成員函式可以進行過載
建構函式的過載
普通成員函式的過載
靜態成員函式的過載
問題:全域性函式,普通成員函式以及靜態成員函式之間是否可以構成過載?
3.萬變不離其宗
1.過載函式的本質為多個不同的函式
2.函式名和引數列表是唯一的表示
3.函式過載必須發生在同一個作用域中
29-1 類與過載全面分析
4.深度的意義—現在提倡程式碼自助式,即不需要註釋來說明如何呼叫
過載的意義
通過函式名對函式功能進行提示
通過引數列表對函式用法進行提示
擴充套件系統中已經存在的函式功能
29-2 過載的意義分析
#include<stdio.h> #include<string.h> char* strcpy(char* buf, const char* str, unsigned int n) { return strncpy(buf, str, n); } int main() { const char* s = "asdf"; char buf[3] = {0}; //strcpy(buf, s); //strncpy(buf,s,sizeof(buf)-1); //C語言的做法 ~ what c language do strcpy(buf,s,sizeof(buf)-1); printf("%s\n", buf); return 0; }
5.思考
過載能夠擴充套件系統中已經存在的函式功能!那麼過載是否也能夠擴充套件其他更多的功能?
下面的複數解決方案是否可行?不可行—這個下節課講
小結
類的成員函式之間可以進行過載
過載必須發生在同一個作用域中
全域性函式和成員函式不能構成過載關係
過載的意義在於擴充套件已經存在的功能