标签:返回 tor 操作符 || data 另一个 操作 检查 地址
一、重载操作符的定义
1.重载操作符函数由返回值类型、函数名(operator后接需要定义的操作符)、形参组成;
2.重载操作符必须具有至少一个类类型或枚举类型的操作数;
3.除了函数调用操作符operator()之外,重载操作符使用默认实参是非法的;
4.最好不要重载&&、||、逗号、取地址操作符,因为他们不再具备短路求值特性;
5.大多数重载操作符可定义为类的成员函数和普通成员函数;
6。操作符重载作为普通成员函数时,通常需要将其设置为所操作类的友元函数;
二、操作符重载的实现
1.输出操作符<<重载
{
os << s.isbn ;
return os;
}
2.输入操作符>>重载
{
is >>s.isbn ;
if(is)
{
}
return is;
}
3.算数操作符+、-、*、\重载
Sales_item operator+(const Sales_item& lhs,const Sales_item& rhs)
{
Sales_item ret(lhs);
ret+=rhs;
return ret;
}
4.关系操作符==、!=、>、<、<=、>=、重载
bool operator==(const Sales_item& lhs, const Sales_item& rhs)
{
return lhs.sold == rhs.sold &&
lhs.revenue == rhs.revenue;
}
bool operator!=(const Sales_item& lhs, const Sales_item& rhs)
{
return !(lhs == rhs);
}
5.赋值操作符=重载
Sales_item& Sales_item::operator=(const Sales_item& rhs)
{
sold += rhs.sold;
revenue += rhs.revenue;
return *this;
}
6.下标操作符[]重载
int& Sales_item::operator[](const int index)
{
return data[index];
}
const int& Sales_item::operator[](const int index)const
{
return data[index];
}
标签:返回 tor 操作符 || data 另一个 操作 检查 地址
原文地址:https://www.cnblogs.com/dhhu007/p/13568484.html