class p
;
這些竟然都算是過載,我也是醉了!
一般情況下,無const修飾的宣告,函式呼叫時,必須有變數名,不能使用字面值, 且型別必須是宣告型別,不會進行型別轉換,否則出錯。
//對於宣告為 int increase(int &val)
int a=1;
int b=2;
double c=3;
const int d=4;
increase(a);//ok
increase(a+b);//error
increase(c);//error
increase(3);//error
increase(d);//error
而有const宣告的,即會型別轉換,又可以使用字面值,有無const修飾的變數都可以
const 和 非const函式過載
在下面的 中a1呼叫const版本,a2呼叫非const版本。const a a1 a a2 a1.x a2.x 後面加const表示在該函式中不能對類的資料成員進行改變,比如 class a 這可以 int x const 當然有特殊情況,就是用mutable關鍵字修飾過的成員變數可以在宣告為co...
函式過載之const
我們知道,如果函式名相同,在相同的作用域內,其引數型別 引數個數,引數順序不同等能構成函式過載。有趣的是如果同時在類中,對於函式名相同的const函式和非const函式能夠構成過載,同時它們被呼叫的時機為 如果定義的物件是常物件,則呼叫的是const成員函式,如果定義的物件是非常物件,則呼叫過載的非...
const 成員函式過載
先看一段引用 1 許多人漠視一件事實 兩個成員函式如果只是常量性 constess 不同,可以被過載 ok,下面為了解釋,定義一下下面這個類 class cstring const char operator size t i const 注意這個const 常量,屬於函式簽名,因此導致過載 然後有...