重载算术操作符

来源:互联网 发布:足球竞彩数据分析app 编辑:程序博客网 时间:2024/05/02 00:49
#include <iostream>#include <string>using namespace std;class Sales_item{    friend ostream& operator<<(ostream& os, const Sales_item&);public:    Sales_item(const std::string &bookNo, const unsigned units, const double price) :        isbn(bookNo), units_sold(units), revenue(price){}    Sales_item& operator+=(const Sales_item&);    Sales_item& operator -=(const Sales_item&);private:    std::string isbn;    unsigned units_sold;    double revenue;};Sales_item& Sales_item::operator+=(const Sales_item& rhs){    units_sold += rhs.units_sold;    revenue += rhs.revenue;    return *this;}Sales_itemoperator+(const Sales_item &lhs, const Sales_item &rhs){    Sales_item sum = lhs;//把lhs的数据成员拷贝给sum    sum += rhs;//将rhs加到sum中    return sum;}ostream& operator<<(ostream& os, const Sales_item& item){    os << item.isbn << " " << item.units_sold << " " << item.revenue << " ";    return os;}Sales_itemoperator-(const Sales_item& rhs, const Sales_item& lhs){    Sales_item sub = rhs;    sub -= lhs;    return sub;}Sales_item&Sales_item::operator-=(const Sales_item &rhs){    units_sold = rhs.units_sold;    revenue = rhs.revenue;    return *this;}int main(){    Sales_item item1(string("99-999-999"), 10, 50.00);    Sales_item item2(string("99-999-888"), 5, 20.00);    Sales_item result = item1 + item2;    cout << result << endl;    Sales_item item3(string("99-888-888"), 20, 100.00);    result += item3;    cout << result << endl;    result -= item1;    cout << result << endl;    result = item1 - item2;    cout << result << endl;    return 0;}
0 0
原创粉丝点击