C++ 重载关系操作符

1、关系操作符(==、!=、<、<=、>、>=)

2、最好相互联系起来进行重载,让一个操作符调用另一个操作符

3、代码示例:

class Sales_item {
	friend bool operator==(const Sales_item&, const Sales_item&);
public:
    Sales_item(const std::string &book, unsigned units, double amount):
              isbn(book), units_sold(units), revenue(amount) { }
    Sales_item(): units_sold(0), revenue(0.0) { }
public:
    double avg_price() const;
    bool same_isbn(const Sales_item &rhs) const
        { return isbn == rhs.isbn; }

private:
    std::string isbn;
    unsigned units_sold;
    double revenue;

};

inline bool operator==(const Sales_item &lhs, const Sales_item &rhs)
{
	return lhs.units_sold == rhs.units_sold &&
		lhs.revenue == rhs.revenue &&
		lhs.same_isbn(rhs);
}

inline bool operator!=(const Sales_item &lhs, const Sales_item &rhs)
{
	return !(lhs == rhs);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值