1樓:匿名使用者
常型別是指使用型別修飾符const說明的型別,常型別的變數或物件的值是不能被更新的。因此,定義或說明常型別時必須進行初始化。
一般常量和物件常量
1. 一般常量
一般常量是指簡單型別的常量。這種常量在定義時,修飾符const可以用在型別說明符前,也可以用在型別說明符後。如:
int const x=2;
或const int x=2;
定義或說明一個常陣列可採用如下格式:
《型別說明符》 const 《陣列名》[《大小》]…
或者const 《型別說明符》 《陣列名》[《大小》]…
例如:int const a[5]=;
2. 常物件
常物件是指物件常量,,的rtmag教~無_;定義格式如下:
《類名》 const 《物件名》
或者const 《類名》 《物件名》
定義常物件時,同樣要進行初始化,並且該物件不能再被更新,修飾符const可以放在類名後面,也可以放在類名前面。
常指標和常引用
1. 常指標
使用const修飾指標時,由於const的位置不同,而含意不同。下面舉兩個例子,說明它們的區別。
下面定義的一個指向字串的常量指標:
char * const prt1 = stringprt1;
其中,ptr1是一個常量指標。因此,下面賦值是非法的。
ptr1 = stringprt2;
而下面的賦值是合法的:
*ptr1 = "m";
因為指標ptr1所指向的變數是可以更新的,不可更新的是常量指標ptr1所指的方向(別的字串)。
下面定義了一個指向字串常量的指標:
const * ptr2 = stringprt1;
其中,ptr2是一個指向字串常量的指標。ptr2所指向的字串不能更新的,
k提教應該注意const的位置。定義一個指向字串的指標常量和定義一個指向字串常量的指標時,const修飾符的位置不同,前者const放在*和指標名之間,後者const放在型別說明符前。
2. 常引用
使用const修飾符也可以說明引用,被說明的引用為常引用,該引用所引用的物件不能被更新。其定義格式如下:
const 《型別說明符》 & 《引用名》
例如:const double & v;
在實際應用中,f網|b\xc
void print(const int *p, int n)
"< }
常成員函式
使用const關鍵字進行說明的成員函式,稱為常成員函式。只有常成員函式才有資格操作常量或常物件,沒有使用const關鍵字說明的成員函式不能用來操作常物件。常成員函式說明格式如下:
《型別說明符》 《函式名》 (《參數列》) const;
其中,const是加在函式說明後面的型別修飾符,它是函式型別的一個組成部分,因此,在函式實現部分也要帶const關鍵字。下面舉一例子說明常成員函式的特徵。
#include
class r
;void r::print()
void r::print() const
void main()
該例子的輸出結果為:
5,420;52
該程式的類宣告瞭兩個成員函式,|t?v;t專tj%專i
o;(6!gg2]教bzz專"
其型別是不同的(其實就是過載成員函式)。有帶const修飾符的成員函式處理const常量,這也體現出函式過載的特點。
常資料成員
型別修飾符const不僅可以說明成員函式,也可以說明資料成員。
由於const型別物件必須被初始化,並且不能更新,因此,在類中說明了const資料成員時,只能通過成員初始化列表的方式來生成建構函式對資料成員初始化。
下面通過一個例子講述使用成員初始化列表來生成建構函式。
#include
class a
;const int a::b=10;
a::a(int i):a(i), r(a)
void a::print()
void main()
該程式的執行結果為:
100:10:100
0:10:0
在該程式中,說明了如下三個常型別資料成員:
const int & r;
const int a;
static const int b;
其中,r是常int型引用,a是常int型變數,b是靜態常int型變數。
程式中對靜態資料成員b進行初始化。
值得注意的是建構函式的格式如下所示:
a(int i):a(i),r(a)
其中,冒號後邊是一個資料成員初始化列表,它包含兩個初始化項,用逗號進行了分隔,因為資料成員a和r都是常型別的,需要採用初始化格式。
2樓:
其實這意思就是
a(int i=0)
建議看看c++類,那兒有說
3樓:匿名使用者
ri(i)是指在類的建構函式中對類的成員變數r1進行賦值。
封閉式電感上的那些1R0啊,2R0是什麼啊
電感bai的標示 1.直接法2.文字元du號法如6r8 6.8uh 你zhi的電感應該是這樣標dao示的 回3.色標法 色標標稱電感量答倍率精度第一色環第二色環黑01 20 棕110 紅2100 橙31000 黃4 綠5 藍6 紫7 灰8 白9 金 0.1 5 銀 0.01 10 4.數碼標示法如 ...
T1CT0C是什麼牌子手錶,手錶R0LEX是什麼牌子
回答和翻譯如下 特1克特奧克。這牌子是什麼手錶國產還是進口 手錶r0lex是什麼牌子 世界名牌手錶瑞士產的 勞 力士 r0lex 關於sql 有這個表 a t1 b t1 c t2 d t2 現在我要統計轉換這種 a b c d 1 1 1 1 語句怎麼寫,請各位幫忙 只能用0來表示 沒法用空來表示...
板材e0和e1的區別是什麼,E0和E1 板材的區別
因為現在社會不斷的在發展,環境也是不斷地在破壞,所以大家對於環保的意識也是在不斷的增強,對於家裝的板材要求也是越來越高,我們在購買板材的時候,經常會看到一些級別的標識,下面我們來跟大家分享一下環保板材eo e1是什麼意思?e1級高密度環保板材和e0的有啥區別?一起說說吧。環保板材eoe1是什麼意思 ...