今晚写代码,结构体直接=报错了,于是给结构体重载运算符,在博客园中看见一篇很好的博客,收藏啦~~~
原地址:http://www.cnblogs.com/xielechuan/archive/2012/05/25/2518358.html
结构体运算符重载
1、定义结构体
struct Currency
{
int Dollar;
int Cents;
}
2、重载IO输出操作,在结构体内部将输入操作的重载定义为友元函数重载
friend ostream &operator<<(ostream &out,Currency value);
在结构体外部进行具体定义
ostream& operator<<(ostream &out,Currency value)
{
out<<"The dollar = "<<value.Dollar<<" and The Cents = "<<value.Cents<<endl;
return out;
}
3、重载结构体的“=”操作符(在结构体内部)
Currency& operator=(Currency& value)
{
Dollar = value.Dollar;
Cents = value.Cents;
return *this;
}
4、重载结构体的“+”操作符(在结构体内部)
Currency& operator+(Currency& value)
{
Dollar += value.Dollar;
Cents += value.Cents;
return *this;
}
5、重载结构体的"-"操作符(在结构体内部)
Currency &operator-(Currency& value)
{
Dollar = Dollar - value.Dollar;
Cents = Cents - value.Cents;
return *this;
}
6、重载结构体的“*”操作符(在结构体内部)
Currency& operator*(Currency& value)
{
Dollar *= value.Dollar;
Cents *= value.Cents;
return *this;
}
7、定义函数模板格式的输出函数
template <typename T>
void DisplayValue(T value)
{
cout<<value<<endl;
}