C++运算符重载的问题,请问,为什么会错呢?谢谢

2024-11-24 03:54:23
推荐回答(3个)
回答1:

在public部分补一个Test(){}就可以了。
报错是因为没有合适的构造函数来初始化t3

回答2:

1L正解
////////////

#include
using namespace std;
class Test
{
public:
Test(int x=0,int y=0){a=x;b=y;} //构造函? /////////////////////////////////////////////////////////////
Test operator +(Test t2); //?算福+重?成?函?
void show(); //?出
private:
int a,b;
};
Test Test::operator + (Test t2) //重??算符函???
{
return Test(a+t2.a,b+t2.b);
}
void Test::show()
{
cout<<"("<}
//主函?
void main()
{
Test t1(1,2),t2(3,4),t3;
t3=t1+t2;
t3.show();

}

回答3:

no appropriate default constructor available
没有合适的默认构造函数

t1,t2都有参数,错在t3上