2012-09-03 23 views
2

我每個人都有一個真正簡單的問題。以下代碼有什麼區別? (參見 「用括號」 和 「沒有括號」)超級簡單C++構造函數查詢

class class_a{ 
    public: 

     int a_int; 

     class_a(){ 
      a_int = 0; 
     } 
} 

int main(...){ 

    class_a instance_a_first; // Without Parentheses 
    class_a instance_a_second(); // With Parentheses 

} 
+5

第二個是函數聲明。 – hmjd

+1

@JoSo你會錯的。 :)谷歌「最令人頭疼的解析」 –

+2

。 –

回答

4

第一個定義了一個名爲* instance_a_first *類型* class_a *變量。

第二個聲明一個名爲* instance_a_second *的函數,它返回一個* class_a *對象並且不帶任何參數。

這是相同的寫作: -

int one; 

VS

int func(); 

編輯:更改第二句說的聲明,而不是定義。

+0

爲什麼我的格式將名稱以斜體顯示爲星號? – jcoder

+0

,因爲下劃線,顯然 – Oktalist

+0

啊好吧我想這是在一種討厭的方式有道理 – jcoder