我想知道爲什麼會出現這樣的錯誤。爲什麼複製構造函數調用其他類的默認構造函數?
no matching function for call to 'Foo::Foo()'
代碼複製構造函數?假設Foo只是一個具有普通字段的對象(沒有動態分配的內存等),並且它定義的唯一構造函數是一個構造函數,它接受一個參數。
我甚至不知道需要考慮的構造函數。如果代碼說像
bar = thing.bar; //
和酒吧是Foo類型不同的,與上述的規格,不應該只是產生一個淺拷貝,並用它做什麼?爲什麼需要調用默認構造函數?
向我們顯示您的代碼。你定義了默認的構造函數嗎? – 2009-12-20 05:42:53
如果你添加一個空的Foo :: Foo()的定義,它將被編譯。但是,讓我懷疑的是,爲什麼你試圖在拷貝構造函數中調用它呢?你能告訴我們代碼嗎? – 2009-12-20 05:48:28