類內陣列宣告,「類外」指定大小

2021-09-07 02:16:00 字數 660 閱讀 2129

類內陣列宣告,「類外」指定大小

using namespace std;

class age;

const int age::ages = ;

int main()

首先說明:

1,c++可以在類的宣告的時候指定值:但是是有條件的:static const 修飾。保證是class級別的,並且不可修改。

2, ages的宣告是在類體內的,具體化是在外面的。為什麼是可以對呢,而int的value是不可以的,又是為什麼呢。

談談我的認識:

1, static是class 級別的,所以只有乙份在程式級別的棧中,所以我們物件可以有很多份,而static的只有乙份。

2, 既然是clss 級別的,值如果是設定的初始值,就不能被其他物件修改,使用了const修飾,就可以使用::域操作來訪問。

如果不設定初始值,儲存級別是class的, 訪問級別就是物件級別的了.

3, 基本型別int不能像陣列(指標)一樣在類體外初始化,至於為什麼,我猜測是基本型別是經過一步就完成了值和位址的確認,而複雜型別,比如說是陣列(指 針),經過第一步只是確認了指標的值(所指位置)以及儲存這個指標的位址,並沒有初始化好分配多少記憶體,第二步確認分配的內。第一步在預編譯完成,第二步 在編譯階段完成,有待驗證。

全域性函式類內和類外實現

全域性函式類內實現 直接在類內宣告友元即可 全域性函式類外實現 需要讓編譯器提前知道全域性函式的存在 推薦使用全域性函式類內實現,編譯器可以直接識別 include include using namespace std 宣告person類 template classt1,class t2 cla...

私有成員變數的訪問(類內與類外)

1 class ctest 1011 ctest ctest int i value i 1215 16 ctest ctest const ctest rhs value rhs.value 1720 21 ctest ctest operator const ctest rhs 2229 30v...

初始化指定大小陣列,並對陣列內元素統一設定值

如題,此種情況可使用arrays.fill 函式 1 接收兩個引數 arrays.fill arr,value eg string arr new string 5 arrays.fill arr,big 結果 arr 1 接收四個引數 arrays.fill arr,startindex,endi...