頻道欄目
首頁 > 資訊 > C++ > 正文

C++常成員

17-04-22        來源:[db:作者]  
收藏   我要投稿

C++常成員:雖然數據隱藏保證了數據的安全性,但各種形式的數據共享卻又不同程度地破壞了數據的安全性。因此,對于既需要共享有需要防止改變的數據應該定義為常量進行保護。

以保證它在整個程序運行期間是不可改變的。這些常量需要使用const修飾符進行定義。const關鍵不僅可以修飾類對象本身,也可以修飾類對象的成員函數和數據成員,分別稱為常對象、常成員函數、常數據成員。

》常對象

使用const關鍵字修飾的對象稱為常對象,定義格式:

class A
{
public:
	A(int i,int j):x(i),y(j){}
private:
	int x,y;
};
const A a(1,2);   //a為常對象,不能更新
//也可定義為 A const a(1,2);
》常成員函數

使用const關鍵字說明的成員函數稱為常成員函數,說明格式:

<返回類型><成員函數名>(<參數表>) const ;

注:

#const是函數類型的一個組成部分,因此在函數實現部分也要帶有const關鍵字;如果在定義常成員函數時丟失了const關鍵字,程序會產生錯誤。

#常成員函數也不能更新對象的數據成員,否則也會產生錯誤。

#由于常對象不能被更新,因此,在將一個對象說明為常對象后,通過這個常對象只能調用它的常成員函數,而不能調用其它的成員函數。

#const關鍵字可以用于參與對重載函數的區分。

#當類中只有一個常成員函數時,一般對象也可以調用該常成員函數,但當兩個同名的一般成員函數和常成員函數同時存在,遵循上述重載原則。

從上表可以看出,當成員函數是常成員函數時,常對象和一般對象都可以調用它;而對于一般成員函數,則只有一般對象可以調用,常對象調用它將產生錯誤。因此,如果成員函數不修改對象時,最好將其聲明為const成員函數。

》常數據成員

格式:const <數據類型> <常數據成員名>;

#使用const說明的數據成員稱為常數據成員。常數據成員的定義與一般常量的定義方式相同,只是它的定義必須出現在類體中。

#常數據成員同樣也必須進行初始化,并且不能被更新。但常數據成員的初始化只能通過構造函數的成員初始化列表顯式的進行。

#執行帶有初始化列表的構造函數時,要注意首先執行的是初始化列表,然后才執行構造函數體。在執行初始化列表時,不管各項的排列順序如何,都將按照類中數據成員定義的先后順序給數據成員賦初值,而在執行構造函數體時,則是按照語句排列的順序自上而下進行的。

相關TAG標簽
上一篇:臺積電:絕大多數7nm客戶都會轉向6nm_IT新聞_博客園
下一篇:最后一頁
相關文章
圖文推薦

關于我們 | 聯系我們 | 廣告服務 | 投資合作 | 版權申明 | 在線幫助 | 網站地圖 | 作品發布 | Vip技術培訓 | 舉報中心

版權所有: 紅黑聯盟--致力于做實用的IT技術學習網站

美女MM131爽爽爽毛片