C++ Primer 7.33 练习编写成员函数

这里我们编写一个成员函数,可以实现两个sales_item相加。实现起来如下:

1.先在Sales_item.h中类定义里添加声明。

 Sales_item add(Sales_item& other);

2.再到Sales_item.cpp中实现该函数,记住函数名前要添加域Sales_item::。

//两组交易相加
Sales_item Sales_item::add(Sales_item& other)
{
    units_sold += other.units_sold;
    revenue += other.revenue;
    return *this;
}

3.为了测试效果,我们在主程序里编写如下代码:

//7-33.cpp
//读入一组交易,输出每本书的销售册数 总销售收入 和 平均销售价格
#include <iostream>
#include <Sales_item.h>
using namespace std;

int main()
{
    Sales_item total, trans;    //保存总和和下一笔交易

    cout << "Enter some transactions(Ctrl + Z to end):" << endl;
    if (total.input(cin))   //读入第一个记录有效
    {
        while (trans.input(cin))    //读入后续的交易
            if (total.same_isbn(trans))
                //新读入的交易有相同isbn则相加
                total.add(trans);
            else
                //不同则输出 total 并重置total
            {
                total.output(cout) << endl;;
                total = trans;
            }
        //输出最后一个total
        total.output(cout) << endl;;
    }
    else
    {
        cout << "No data?!" << endl;
        return -1;
    }
    return 0;
}


posted @ 2014-05-08 15:59  庄浩  阅读(202)  评论(0编辑  收藏  举报