問題:在類中建立乙個int型別的陣列
方法一:(錯誤)
class test
;錯誤原因:
1:因為在乙個類中,const恢復了它在c中的一部分意思,在每個類物件裡分配儲存並代表乙個值,這個值一旦被初始化以後就不能被改變。所以在類中使用了const的意思是:在這個物件的生命週期內,它是乙個常量。
然而,每個物件可能包含不同的值。
2:對const常量進行了初始化,c++中這個初始化必須由建構函式完成,如const常量在初始化列表中進行初始化。
方法二:(正確,有缺陷)
使用enum;
class test
;int array[size];
//……
};使用enum不會占用物件中的儲存空間的,列舉常量在編譯的時候被全部求值。
缺點:假如定義乙個非整型的常量該如何?enum無法完成此項操作,同時喪失了列舉本來的作用。
方法三:(正確,最好)
使用靜態常量;
class test
;const int test::size = 100;
它既是常量,不能改變,又是靜態,在類中只有乙個定義點。所以能夠完成任務。
同時,它可以定義任何與定義型別的常量
類中定義常量
const int 和const 浮點型可以在類中定義,既然已經定義過了,編譯器就會為它分配記憶體。那麼類外的const int a i 就不會被視為定義而被編譯器認為是乙個重複申明,所以就不必要了。而普通型別,如static char p在類中的只是申明,編譯器不會為它分配記憶體,所以要在類外執行...
c 在類中定義常量的幾個做法
用下面的乙個問題來說明。問題 在類中建立乙個int型別的陣列 方法一 錯誤 class test 錯誤原因 1 因為在乙個類中,const恢復了它在c中的一部分意思,在每個類物件裡分配儲存並代表乙個值,這個值一旦被初始化以後就不能被改變。所以在類中使用了const的意思是 在這個物件的生命週期內,它...
C 類中定義常量
在c 類中定義常量,有以下兩種方法 1.在類定義體內定義列舉常量 例如 class a 這樣定義出來的常量值在程式執行過程中是不能被修改的,編譯的時候就已經確定了這些常量的值 2.在類定義體中宣告使用static const來修飾成員常量,然後在類定義體外對這些成員進行初始化 也就是說在類定義體內定...