1. 程式人生 > 其它 >.NET Core 返回結果統一封裝

.NET Core 返回結果統一封裝

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)賦給了普通指標。