const int num = 0; // 常量必須要初始化,而且不可修改。
int num = 100;
const int *p = #
在這兩句**後,p可以修改,*p不可以修改。
int num = 100;
int *const p = #
在這兩句**後,*p可以修改,p不可以修改。
所以變數能不能修改看的是宣告時const後面的是什麼。
const int *p; //修飾的是*p,所以*p不可以修改,但是p可以改,所以p可以不用初始化。
int *const p; // 這句話會報錯,const修飾的就是p,所以p需要初始化。
如果在類裡面加入了const成員:
在宣告const變數時不能直接初始化,必須在初始化列表中初始化。
引用變數如果要在類中使用,也需要在初始化列表中初始化。
class cperson
};
如果這個類中包含另乙個類的物件,執行對應建構函式初始化,也要在初始化列表中初始化。
class aa
{public:
aa(int a)
{cout<<"aa"《初始化列表執行的順序是根據變數定義的順序執行的。
常函式不能修改類的成員屬性,函式裡面預設的this指標,加入const後就不能修改了。
常量物件可以呼叫常函式。
常量物件不能呼叫普通函式,因為函式想要呼叫物件,傳入指標,函式就可以修改指標所指向的內容,而常量物件是不可修改的,呼叫了就會衝突。
常函式在什麼時候使用?
如果在乙個函式中,需要傳入乙個物件,主函式定義乙個物件,呼叫函式時會拷貝整個物件,比較消耗時間,所以會在函式引數那裡寫為值引用。
為了不讓函式修改物件裡的東西,在值引用的前面加上const。
而引數有const屬性後,它所能使用的類中函式,就得為常函式。
C 之const類成員變數,const成員函式
const修飾類的成員函式 const修飾變數一般有兩種方式 const t a,或者 t const a,這兩者都是一樣的,主要看const位於 的左邊還是右邊,這裡不再贅述,主要來看一下當const修飾類的成員函式時,成員函式有什麼特點。類的成員函式後面加 const,表明這個函式不會對這個類物...
複習 C 之static成員
當類中只有乙個int成員時,這個類的大小為4,但是類中只有乙個靜態int成員時,這個類的大小為1。includeusing namespace std class cperson 只有乙個int成員時 int main includeusing namespace std class cperson...
C 之 const類成員函式
const修飾的變數稱為常變數,不可修改,而const修飾的類成員函式限制為不可修改類的成員,只能讀取。寫法是將const放在函式引數列表後面,而不是放在函式前面或者放入引數列表內 class test 在類體之外定義const函式也需要加const int test getnum const 1....