我使用下面的類聲明:參考在構造函數的參數調用參考的默認構造函數
class A {
public:
A(int, float);
A(const A&);
};
class B {
public:
B(A&);
protected:
A a;
};
我還設置瞭如下定義爲B:
B::B(A &a) {
this->a = a;
}
的問題是我有一個錯誤關於我的B
構造函數的定義,告訴我有No matching function for call to A::A()
。
爲什麼我的B構造函數試圖創建一個新的A?
如果需要上一步,爲什麼不使用引用調用複製構造函數?
「B」是從「A」派生的還是包含「A」的實例? – NPE
您發佈的代碼不會嘗試在'B'構造函數中默認構造'A',並且不會生成此錯誤。請發佈真實的代碼。您發佈的代碼是假的。 – AnT
這不是一個測試用例。它不會重現問題。 http://sscce.org –