2013-10-15 18 views
1

我大多是一個Java程序員,他有一些C++培訓,現在面臨着一些複雜的C++代碼。C++對象聲明中第四列中的字符串

有一系列靜態變量用四項聲明聲明,並沒有出現在我的任何C++教程中。

,其形式

static VAR var ("var"); 

所以VAR是類,變種的名稱和...什麼是在結束的字符串?如果這是Java,我會說,該字符串看起來像一個參數傳遞給VAR構造函數,除了它會是錯誤的,因爲該對象是靜態的,所以構造函數永遠不會被調用。那麼,字符串是一些C++構造函數調用?

+1

請忘記新的 - 在c + + new是一個分配,但沒有新的堆棧上的建設是好的(和小型對象更好)。 –

+1

構造函數也被稱爲靜態對象 - 它們將如何構造? – molbdnilo

+0

在C++中不應該用這種方式聲明一個靜態變量的初始化。 – andre

回答

2

VAR是類型(可能是一個類)。

var是變量名稱。

如果後面有一些括號,那就是傳遞給構造函數的東西。如果該聲明屬於全局範圍:在調用main()之前調用該聲明。如果該聲明在函數內:它在第一次執行函數的那部分時被調用。

請注意,儘管它們相似,但C++和Java中的static並不完全相同。