4 請問,在C 類中如何初始化const和static資料成員

2022-08-09 00:05:23 字數 1985 閱讀 2864

1樓:匿名使用者

const資料成員只能在成員初始化列表進行初始化,static資料成員只能在類外進行初始化。static const資料成員既可以在宣告時初始化,也可以在類外初始化。

下面是一個例子:

#include

using namespace std;

class a

public:

a():ci(1)

void output()

cout

const int ci;

static int si;

static const int sci1=3;

static const int sci2;

int a::si=2;

const int a::sci2=4;

int main()

a a;

a.output();

return 0;

2樓:匿名使用者

a.通常在類外宣告static成員

b.static const的整型(bool,char,int,long)可以在類中宣告且初始化

c. static const的其他型別必須在類外初始化(包括整型陣列)。

傳智播客出的書裡面,這些基礎的問題就全部梳理清楚了。

c++中, 類的私有資料成員在定義的時候不能進行初始化嗎?

3樓:四舍**入

是的,c++中類的資料成員不管是不是私有的,都不能進行初始化。

因為類就相當於一個資料的模板,是一種自定義組合的新資料型別,而不是一個變數。當程式宣告一個類的時候,事實上並沒有為程式申請儲存空間,只有用這個類定義一個類物件的時候,才申請空間。連空間都沒有,當然不能像定義變數一樣的初始化了。

4樓:翲燚

靜態私有成員不可以,非靜態私有成員可以。

class a ;

5樓:

可以。不過你說的這個在定義的時候我不明白是什麼意思,是指類物件被建立的時候?類物件被建立的時候會自動呼叫該類的初始化函式,你想初始化私有成員變數只需要把它們的定義寫在初始化函式裡面就行了。

6樓:匿名使用者

別說是私有,就連公有以及保護都是不能初始化的,初始化要不在建構函式中進行。

7樓:匿名使用者

在c++中,類的資料成員就不能在定義的時候初始化,除非它是靜態的。c++中你在定義類的時候寫的是宣告。所以想初始化就上建構函式吧。

8樓:匿名使用者

這個分編譯器的不同而不同,在部分比較新的編譯器中(例如vs2015)就可以在定義時進行初始化。

9樓:匿名使用者

不能,c++的類的成員變數都不能在定義的時候進行初始化。

只有被宣告為static的才可以

10樓:

。。。。。

1 類的私有成員和初始化有什麼關係

2 初始化一般是建立物件的時候,建構函式進行初始化。

11樓:

我用vs2010不支援直接寫初始化值,用qt5.5就可以。為了通用,還是寫到建構函式裡吧。

12樓:匿名使用者

可以使用建構函式初始化類私有成員。

13樓:匿名使用者

不可以,要不然建構函式幹什麼吃的。

c++中如何在類中定義靜態const的string?

14樓:匿名使用者

class a ;

//其他檔案

const a::string mystr = "string";

樓上說的是,只有靜態整數(注意,不僅僅是整型)常量可以在類中宣告並初始化,其他的都必須在類外初始化。

如何初始化類物件陣列,JAVA中怎麼初始化物件陣列?

物件陣列是由預設建構函式 即無參建構函式 初始化的。因此,你的提供參建構函式。stu new student 5 這條語句定義了含有5個student物件的陣列,但沒有初始化,所以你要在類裡面加一個無參的建構函式 student 不知道你是從哪本書看到這麼一說的?建立物件的時候,就會呼叫預設建構函式...

C 中類的建構函式的隱式初始化和顯示初始化怎麼理解

隱式初始化可以理解為自己不做任何的操作,有系統環境幫你完成變數的初始化。顯示的就是自己的操作了啊。隱式初始化,即在main 函式中,沒有顯式呼叫建構函式的語句。建構函式是在定義物件時被系統自動呼叫。如 類名 物件名 實參表 那麼顯式初始化應該是先宣告物件,再呼叫建構函式 即類名 物件名 物件名 建構...

在金蝶軟體中的科目初始化設定中,固定資產的期初餘額預設不可以輸入,如何答題呢

如果你的軟體版本是帶有固定資產的,那麼固定資產就要以卡片形式錄入到系統,而不是直接輸入原值 累計折舊等餘額 在固定資產後面不是有個綠色的麼,你點了那個 輸入卡片就可以了 必須不能,在固定資產模組做,把資料傳到總賬去 金蝶軟體在固定資產系統裡錄入了新增資產,輸入憑證時,只能輸入一級科目,不能輸入明細 ...