1. 程式人生 > >C++筆記 第二十九課 類中的函式過載---狄泰學院

C++筆記 第二十九課 類中的函式過載---狄泰學院

如果在閱讀過程中發現有錯誤,望評論指正,希望大家一起學習,一起進步。
學習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.思考

過載能夠擴充套件系統中已經存在的函式功能!那麼過載是否也能夠擴充套件其他更多的功能?
下面的複數解決方案是否可行?不可行—這個下節課講
在這裡插入圖片描述
小結
類的成員函式之間可以進行過載
過載必須發生在同一個作用域中
全域性函式和成員函式不能構成過載關係
過載的意義在於擴充套件已經存在的功能