.NET Core 返回結果統一封裝
阿新 • • 發佈:2022-03-08
c++ pp page 227
1.函式過載的關鍵是函式的引數列表(函式特徵標);如果兩個函式的引數數目和型別相同,同時引數的排列順序也相同,則它們的特徵標相同。
僅返回型別不同的函式不能過載,過載的特徵標必須不同。
2.編譯器在檢查函式特徵標時,將把 一個型別的引用 和該型別本身視為同一個特徵標。因此:
doubel cube(double x); double cube(double & x); ... cout<<cube(x)<<endl;
上述程式碼中引數x和 double x 的原型以及 double & x 的原型都匹配,因此編譯器無法確定究竟應該使用哪個原型。
3.匹配引數時,要區分const 和非const變數。
指向const資料的指標形參可與const資料的和非const資料的地址引數匹配,因為將非const資料的地址指賦給指向const的指標是合法的。
這裡注意,在c++ pp page 227的例子中,
void dabble(char * bits); ... const char p1[20] = "how are you?"; dabble(p1);
上述例子中,將 const char * 轉換為 char * 型別是非法的,因為該例子將const資料的地址(p1)賦給了普通指標。