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宣告的非常成員函式。在任何函式中都不能對常資料成員賦值。對常資料成員初始化,只能通過建構函式的初始化列表。常物件的資料成員在它的生存期內不會被改變,因此定義常物件時必須對其進行初始化。這裡...