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