static和const關鍵字的作用


static關鍵字至少有下列n個作用:  
(1)函數體內static變量的作用范圍為該函數體,不同於auto變量,該變量的內存只被分配一次,因此其值在下次調用時仍維持上次的值;  
(2)在模塊內的static全局變量可以被模塊內所用函數訪問,但不能被模塊外其它函數訪問;  
(3)在模塊內的static函數只可被這一模塊內的其它函數調用,這個函數的使用范圍被限制在聲明它的模塊內;  
(4)在類中的static成員變量屬於整個類所擁有,對類的所有對象只有一份拷貝;  
(5)在類中的static成員函數屬於整個類所擁有,這個函數不接收this指針,因而只能訪問類的static成員變量。   
const關鍵字至少有下列n個作用:  
(1)欲阻止一個變量被改變,可以使用const關鍵字。在定義該const變量時,通常需要對它進行初始化,因為以后就沒有機會再去改變它了;  
(2)對指針來說,可以指定指針本身為const,也可以指定指針所指的數據為const,或二者同時指定為const;  
(3)在一個函數聲明中,const可以修飾形參,表明它是一個輸入參數,在函數內部不能改變其值;  
(4)對於類的成員函數,若指定其為const類型,則表明其是一個常函數,不能修改類的 成員變量;  
(5)對於類的成員函數,有時候必須指定其返回值為const類型,以使得其返回值不為“左值”。例如:  
const classA operator*(const classA& a1,const classA& a2);  
operator*的返回結果必須是一個const對象。如果不是,這樣的變態代碼也不會編譯出錯:  
classA a, b, c;  
(a * b) = c; // 對a*b的結果賦值  
操作(a * b) = c顯然不符合編程者的初衷,也沒有任何意義。  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM