[英]Having trouble passing an object into the constructor of another class in C++
我不能為我的生活解決為什么這不起作用...無法編譯,不斷收到錯誤“沒有匹配函數調用'Duty :: Duty()'”與換行構造函數的行。 我認為它認為我正在試圖召喚一個Duty類構造函數? 但我只是想傳遞一個Duty類對象!
class Duty
{
string Chore;
string Member;
public:
Duty(string dutyInfo);
Duty(string chore, string member) {Chore = chore; Member = member;}
};
class changeDuty
{
Duty Original;
public:
changeDuty(Duty original) {Original = original;}
};
在仔細閱讀相似的問題后,我嘗試過使用
changeDuty(Duty& original) {Original = original;}
和
changeDuty(const Duty& original) {Original = original;}
仍然沒有骰子。 我究竟做錯了什么?
changeDuty(Duty original) {Original = original;}
第一個默認構造Original
,然后重新分配它。 但是沒有默認構造函數,所以這是一個錯誤。 你想要的是:
changeDuty(Duty original) : Original(original) {}
哪個復制構造Original
。
您需要添加默認構造函數。 一個空的將做:
Duty();
既然你這樣做:
Duty Original;
編譯器需要能夠使用不帶參數的構造函數構造Duty
對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.