gpt4 book ai didi

c++ - 运算符重载 : Why This Code Is Not Working ?

转载 作者:行者123 更新时间:2023-11-28 07:33:07 26 4
gpt4 key购买 nike

如您所见,我正在尝试将 7 天添加到“MyAge”类的“Days”中,但它给了我一个错误:

no matching function for call to MyAge::MyAge(int , int&, int&)

为什么会这样?当您回答这个问题时,请尝试更加具体。

抱歉我的英语不好,我是印度人。这是我的代码。

#include<iostream>
using namespace std;

class MyAge
{
private:
int Days;
int Months;
int Years;
int DaysToAdd;
public:
void SetAge(int InputDays,int InputMonths,int InputYears)
{
Years= InputYears;
Months=InputMonths;
Days=InputDays;
}

MyAge operator + (int Add)
{
MyAge Blah (Days + Add,Months,Years);
return Blah;
}

void Display()
{
cout <<"Your age after increment is"<<Years<<"years"<<Months<<"Months"<<Days<<"Days";
}
};

int main()
{
MyAge BirthDay;
BirthDay.SetAge(10,11,19);
MyAge NameDay(BirthDay+7);
NameDay.Display();
return 0;
}

最佳答案

您正在尝试调用一个三参数构造函数,但您没有。您可以添加它,或者像这样更改 operator + 的实现:

MyAge operator + (int Add)
{
MyAge Blah;
Blah.SetAge(Days + Add, Months, Years);
return Blah;
}

关于c++ - 运算符重载 : Why This Code Is Not Working ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17270468/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com