2013-10-03 33 views
10

我開始學習C++,出於好奇,爲什麼C++要求你放一個「;」在類聲明 的結尾,例如:爲什麼C++有一個「;」在類聲明後

class A 
{ 
    /*...*/ 
}; 

像Java語言中,它是用來表示一個語句的結束。

所不同的是大約

int i(5); 

和上面參照C++關於分號類?編譯器是否將這個類作爲一個聲明對待呢,還是對它有不同的解釋?

+2

這個問題非常接近「爲什麼C++不像Java?」或者「C++和Java有什麼區別?」。這兩者都超出了SO的範圍。 –

+5

爲什麼這是起不來的.... – 2013-10-03 16:51:43

+5

@ H2CO3,因爲*程序員C++的每個人都被遺忘了這個小句法怪異。當你理解某件事的原因時,你不太可能忘記它。 –

回答

22

,因爲你還可以定義在聲明變量:

class A { 
     ... 
} x, y, z; 

期末類聲明以一個分號基本上是明確的說,我們是不是聲明此類型的任何變量。

+1

但是當你不這樣做? – 0x499602D2

+6

@ 0x499602D2:如果沒有終止符,你希望編譯器如何猜測'}'後面的東西不是變量? – geoffspear

+2

@ 0x499602D2:一個空的終止列表需要與終止列表一樣長的終止列表。 –

相關問題