我有一個名爲Book的類包含來自類Author的對象。 Book的構造函數是一個私有字段,所以我不能使用這個類來定義對象,所以我有另一個名爲BookBuilder的類,Book和Author的朋友幫助我做到這一點。錯誤:沒有匹配的函數調用,在靜態函數中
如果我刪除靜態功能問題消失。
的問題是:
error: no matching function for call to 'Author :: Author()
其實我沒有作者的默認構造函數
class Book {
public:
friend class BookBuilder;
// ... other functions
private:
Book(const std::string title, const std::string publisher,const Author& author, const std::string genre, int isbn, double price):title_(title),publisher_(publisher),author_(author),isbn_(isbn),price_(price),genre_(genre){}
std::string title_;
std::string publisher_;
Author author_;
double price_;
int isbn_;
std::string genre_;
};
class BookBuilder {
public:
static BookBuilder start(){return BookBuilder();}
// ... other functions
private:
std::string title_;
std::string publisher_;
Author author_;
double price_;
int isbn_;
std::string genre_;
};
_「錯誤:沒有匹配函數調用'Author :: Author()|事實上,我沒有部門Auhtor默認構造函數」_好吧,你不只是回答自己的問題? –