2013-10-15 63 views
-1

我在想,如果這個抽象數據類型,我正在構建正確。正在構建的對象是否正確?

我的構造:在主正在創建

IntSet();         
    IntSet(int a, int = -1, int = -1, int = -1, int = -1);  

IntSets:

IntSet A(); 
IntSet B; 

眼下被構造在5值構造A和B中的空的構造構成。這是正確的,還是應該在空構造函數中構造A?

謝謝!

+5

我不相信你在說什麼。 'A'是一個功能,而不是一個對象。它看起來並不像你已經做出*任何*努力來驗證你的假設(例如,在每個構造函數中打印消息,或者之後訪問成員)。 –

回答

1
IntSet A(); 

此線聲明的函數它沒有任何參數和返回IntSet類型。它沒有定義一個對象。它也被稱爲most vexing parse

IntSet B; 

這條線通過調用默認的構造(其取0參數構造)定義對象B

1

現在,B是默認構造的。

儘管如此,A並不是一個對象的定義。它是一個名爲A的函數的聲明,它不接受任何參數並返回IntSet。谷歌搜索「最棘手的解析」將提供更多的解釋和討論。

相關問題