2015-04-05 75 views
0

將這些定義用於基本類型是否是一種很好的做法?基本類型的統一初始化?

int num1(), num2(0); 
char ch1(), ch2(' '); 

它們很容易被誤認爲函數定義。

int nam1(); 
char ch1(); 
+0

如果您爲使用的編程語言添加了標籤,這將有所幫助。 – Dijkgraaf 2015-04-05 01:34:08

+0

並告訴我們'記住函數定義'的含義。 – EJP 2015-04-05 09:01:24

+0

@Dijkgraaf,EJP感謝您的澄清。我理解_class constructors_中統一初始化的用法,但是,它是否有助於構造函數之外的代碼可讀性。 – Ziezi 2015-04-05 09:31:34

回答

1

因爲C++允許您在程序中的任何位置放置變量聲明......我認爲沒有初始化變量的藉口。

關於C++ 11在Type var (param);Type var {param};之間的區別有一點爭議,後者通過所謂的Uniform Initialization進行規定。我試圖只使用統一的初始化,並從中得到一些奇怪的邊緣情況。我不確定它是否已經被破解,並且一直在退縮,並且通常會尋求代碼清晰度。

所以我會說char ch1(' ');,由於醜陋,更好地說是char ch = ' ';它確實是一個權衡系統。