C 常資料成員精講 const關鍵字

2021-06-29 03:58:44 字數 2413 閱讀 1294

分類: c++

2012-08-26 09:47

937人閱讀收藏 

舉報c++

system

classc

用const修士的定義物件成為常物件;(兩種宣告方式)

[cpp]view plain

copy

const

point point1( 10,10);

//常量物件

point const

point2( 10,10);

//常量物件

用const修飾的宣告成員函式成為常成員函式;

[cpp]view plain

copy

class

point  

void

movepoint( 

inta, 

intb)  

void

print() 

const

;   用const修飾的宣告資料成員成為常資料成員;

注意:變數或物件被const修飾後其值不能被更新(除非資料成員被

mutable修飾時,可以被修改)。因此被const修飾的變數或者物件要進行初始化。

說明:  1 

任何函式都

不能對常資料成員賦值。 2 

建構函式對常資料成員進行初始化時也只能通過

初始化列表進行。

3 常資料成員

在定義時必須賦值或稱為必須初始化。

4 如果累有多個預設建構函式

必須都初始化常資料成員。

通過下面例子來理解常資料成員:(借用網友例項)

[cpp]view plain

copy

class

a  ;  

void

main()  

錯誤一:不能對常資料成員在類中初始化、要通過類的建構函式,只有靜態常量才能這樣初始化。  

錯誤二:沒有合適的預設建構函式可用。因為有常量cctwl沒有初始化必須初始化所有常資料成員。  

多個建構函式下的常資料成員

[cpp]view plain

copy

class

a;  

a(int

x,int

y) //錯誤一    

};  

void

main()  

錯誤一:每個建構函式都要初始化常資料成員應改為  

a(int

x,int

y):cctwl(7),cct(8)  

c++ 常成員函式

宣告: 《型別識別符號》 函式名(引數列表) 

const;

說明: 

(1)const是函式型別的一部分,在實現部分也要帶該關鍵字。

(2)const關鍵字可以用於對過載函式的區分。

(3)常成員函式不能更新任何資料成員,也不能呼叫該類中沒有用const修飾的成員函式,只能呼叫常成員函式和常資料成員。

下面是相應的例項(借用網友):

[cpp]view plain

copy

a、通過例子來理解

const

是函式型別的一部分,在實現部分也要帶該關鍵字。  

class

a  a(){}  

};  

inta::getvalue() 

const

//實現部分也帶該關鍵字

void

main()  

b、通過例子來理解const

關鍵字的過載  

class

a  int

getvalue()  

a(int

x,int

y)  

a(){}  

};  

void

main()  

c、通過例子來理解常成員函式不能更新任何資料成員  

class

a  a(){}  

};  

inta::getvalue() 

const

inta::getvalue()  

void

main()  

d、通過例子來理解  

1、常成員函式可以被其他成員函式呼叫。  

2、但是不能呼叫其他非常成員函式。  

3、可以呼叫其他常成員函式。  

class

a  int

getvalue2()  

a(int

x,int

y)  

a(){}  

};  

void

main()    

C 常資料成員精講 const關鍵字

c 常資料成員精講 const關鍵字 內容提要 用const修飾的定義物件稱為常物件 用const修飾的宣告成員函式稱為常成員函式 用const修飾的宣告資料成員稱為常資料成員。變數或物件被 const修飾後其值不能被更新。因此被const修飾的變數或物件必須要進行初始化。用const修飾的宣告資料...

C 常資料成員精講 const關鍵字

c 常資料成員精講 const關鍵字 內容提要 用const修飾的定義物件稱為常物件 用const修飾的宣告成員函式稱為常成員函式 用const修飾的宣告資料成員稱為常資料成員。變數或物件被 const修飾後其值不能被更新。因此被const修飾的變數或物件必須要進行初始化。用const修飾的宣告資料...

C 常成員函式 常資料成員 常物件

常成員函式在宣告和實現時都要帶const關鍵字 常成員函式不能修改物件的資料成員,也不能訪問類中沒有用const宣告的非常成員函式。在任何函式中都不能對常資料成員賦值。對常資料成員初始化,只能通過建構函式的初始化列表。常物件的資料成員在它的生存期內不會被改變,因此定義常物件時必須對其進行初始化。這裡...