只有靜態常量整型資料成員才可以在類中初始化

2021-08-17 23:47:40 字數 376 閱讀 4040

c++11 之前的標準

只有靜態常量整型資料成員,才可以在類中初始化。

這是因為,當時認為,類定義中的資料定義,是一種宣告,不是資料定義。

當用類 定義物件(變數,常量)時候,才開始定義資料。

靜態常量整型資料成員

1)不是物件的一部分

2)可以產生常量表示式,所以可以在類中初始化。---否則,用它作為陣列的大小,就不合適了。

靜態常量整型資料成員,能夠用來當作常量表示式使用,

不在內部定義的話,則該常量表示式未定義,就不能使用了。

c++11 非靜態成員變數(常量),可以直接初始化,或者在初始化表中初始化。

c++11 中 初始化非靜態成員變數(常量),可以看作賦給變數(常量)乙個預設值。

只有靜態常量整型資料成員才可以在類中初始化

類定義中,資料成員的初始化,只有靜態的常量整形資料成員才可以在類定義中初始化,如 static const int c 2 常整型靜態資料成員可以在類中直接初始化,而常實型靜態資料成員不可以 class circle b可以在類外進行初始化,且所有物件共享乙個b的值 int circle b 2 有...

在類中定義不變的常量是否可以用const?

看了林博士的書才知道這麼一會事。有時我們希望某些常量只在類中有效。由於 define 定義的巨集常量是全域性的,不能 到目的,於是想當然地覺得應該用 const 修飾資料成員來實現。const 資料成員的確 存在的,但其含義卻不是我們所期望的。const 資料成員只在某個物件生存期內是常量 而對於整...

C 在類中可以訪問同類物件的私有成員

今天在實現string類的拷貝建構函式時,發現可以直接使用引數物件去訪問該類的私有成員。string const string s copy拷貝建構函式 str new char strlen s.c str size s.size capacity s.capacity private char ...