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

2021-06-18 10:33:36 字數 1764 閱讀 6703

c++常資料成員精講—const關鍵字

內容提要:

用const修飾的定義物件稱為常物件;

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

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

變數或物件被 const修飾後其值不能被更新。因此被const修飾的變數或物件必須要進行初始化。

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

有兩種宣告形式:

const int  cctwl;

int const  cctwl;

int cctwl  const; //這樣是錯誤的只能有以上兩種宣告形式。不能省略資料型別,可以新增 public private等訪問控制符。

說明:1.任何函式都不能對常資料成員賦值。

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

3.常資料成員在初始化時必須賦值或稱其必須初始化.

4.如果類有多個預設建構函式必須都初始化常資料成員。

通過下面例子來理解常資料成員以上4點。

a、請指出下面程式的錯誤

class a

;void main()

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

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

更正後結果如下:

class a;//通過建構函式初始化列表初始化常成員資料。

};b、多個建構函式下的常資料成員

請指出下面程式的錯誤:

class a;

a(int x,int y) //錯誤一    

};void main()

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

a(int x,int y):cctwl(7),cct(8)

c++常成員函式 - const 關鍵字

一、常成員函式詳解

宣告:《型別標誌符》函式名(參數列)const;

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

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

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

a、通過例子來理解const是函式型別的一部分,在實現部分也要帶該關鍵字。

class a

a(){}

};int a::getvalue() const    //實現部分也帶該關鍵字

void main()

b、通過例子來理解const關鍵字的過載

class a

int getvalue()

a(int x,int y)

a(){}

};void main()

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

class a

a(){}

};int a::getvalue() const

int a::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 2012 08 26 09 47 937人閱讀收藏 舉報c system classc 用const修士的定義物件成為常物件 兩種宣告方式 cpp view plain copy const point point1 10,10 常量物件 point const point2 10,10 ...

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

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