我在想,如果這個抽象數據類型,我正在構建正確。正在構建的對象是否正確?
我的構造:在主正在創建
IntSet();
IntSet(int a, int = -1, int = -1, int = -1, int = -1);
IntSets:
IntSet A();
IntSet B;
眼下被構造在5值構造A和B中的空的構造構成。這是正確的,還是應該在空構造函數中構造A?
謝謝!
我在想,如果這個抽象數據類型,我正在構建正確。正在構建的對象是否正確?
我的構造:在主正在創建
IntSet();
IntSet(int a, int = -1, int = -1, int = -1, int = -1);
IntSets:
IntSet A();
IntSet B;
眼下被構造在5值構造A和B中的空的構造構成。這是正確的,還是應該在空構造函數中構造A?
謝謝!
IntSet A();
此線聲明的函數它沒有任何參數和返回IntSet
類型。它沒有定義一個對象。它也被稱爲most vexing parse。
IntSet B;
這條線通過調用默認的構造(其取0參數構造)定義對象B
。
現在,B是默認構造的。
儘管如此,A並不是一個對象的定義。它是一個名爲A
的函數的聲明,它不接受任何參數並返回IntSet
。谷歌搜索「最棘手的解析」將提供更多的解釋和討論。
我不相信你在說什麼。 'A'是一個功能,而不是一個對象。它看起來並不像你已經做出*任何*努力來驗證你的假設(例如,在每個構造函數中打印消息,或者之後訪問成員)。 –