/*
你的代码中
T_counter& operator =(T_counter x)
{
this->data=x.data;
return *this;
}
T_counter& operator +(T_counter x)
{
this->data+=x.data;
return *this;
};
如果运行 c=a+b;则c是a+b的值,a也是a+b的值了!
*/
//把代码改成下面这样试试
#include
using namespace std;
template
class T_counter
{
public:
T_counter(t a=0)
{
data=a;
}
T_counter& operator =(T_counter x)
{
this->data=x.data;
return *this;
}
T_counter operator +(T_counter x)
{
T_counter y;
y.data=this->data+x.data;
return y;
}
T_counter operator -(T_counter x)
{
T_counter y;
y.data=this->data-x.data;
return y;
}
T_counter operator *(T_counter x)
{
T_counter y;
y.data=this->data*x.data;
return y;
}
friend ostream & operator<<(ostream &woca ,const T_counter & x)
{
woca<<"the value of the T_counter's object is "<
}
friend istream & operator >>(istream &input,T_counter & x)
{
cin>>x.data;
return input;
}
t getdata()
{
return this->data;
}
private:
t data;
};
int main()
{
T_counter
cout<c=a+b;
cout<<"a+b "<
cout<<"a-b "<
cout<<"a*b "<
cout<
return 0;
}