7.29:  done 对于下面的声明和定义，你会将哪个放在头文件，哪个放在程序文本文件呢？为什么？
7.30:  done 第 7.2.2 节的函数 is Shorter 改写为 inline 函数。
7.31:  done 编写你自己的 Sales_item 类，添加两个公用（public）成员用于读和写 Sales_item 对象。这两个成员函数的功能应类似于第一章介绍的输入输出操作符。交易也应类似于那一章所定义的。利用这个类读入并输出一组交易。
07.32 done 详见07.31
7.33:  done 在 Sales_item 类中加入一个成员，用于添加两个 Sales_item 对象。使用修改后的类重新解决第一章给出的平均价格问题。
7.34:  done 定义一组名为 error 的重载函数，使之与下面的调用匹配：
7.34:  done 定义一组名为 error 的重载函数，使之与下面的调用匹配：
7.35:  done 下面提供了三组函数声明，解释每组中第二个声明的效果，并指出哪些（如果有的话）是不合法的。
7.36:  done 什么是候选函数？什么是可行函数？
7.37:  done 已知本节所列出的 f 函数的声明，判断下面哪些函数调用是合法的。如果有的话，列出每个函数调用的可行函数。如果调用非法，指出是没有函数匹配还是该调用存在二义性。如果调用合法，指出哪个函数是最佳匹配。
7.38:  done  给出如下声明：

     void manip(int, int);
     double dobj;
对于下面两组函数调用，请指出实参上每个转换的优先级
等级（第 7.8.4 节）？
07.38 修改文件名
7.39:  done 解释以下每组声明中的第二个函数声明所造成的影响，并指出哪些不合法（如果有的话）。
7.40:  done 下面的函数调用是否合法？如果不合法，请解释原因。

     enum Stat { Fail, Pass };
     void test(Stat);
     test(0);
新增 第8章 题目
8.1:   done 假设 os 是一个 ofstream 对象，下面程序做了什么？

    os << "Goodbye!" << endl;
8.2:   done 下面的声明是错误的，指出其错误并改正之：  ostream print(ostream os);
8.3:  done 编写一个函数，其唯一的形参和返回值都是 istream& 类型。该个函数应一直读取流直到到达文件结束符为止，还
应将读到的内容输出到标准输出中。最后，重设流使其有效，并返回该流。
8.4: done 通过以 cin 为实参实现调用来测试上题编写的函数。
8.5:  done 导致下面的 while 终止的原因是什么？