#ifndef SALESITEM_H
#define SALESITEM_H
#include <iostream>
#include <string>
class Sales_item
{
public:
Sales_item(const std::string &book):
isbn(book), units_sold(0), revenue(0.0) { }
Sales_item(): units_sold(0), revenue(0.0) { }
public:
friend std::istream& operator>>(std::istream&, Sales_item&);
friend std::ostream& operator<<(std::ostream&, const Sales_item&);
public:
friend bool operator==(const Sales_item&, const Sales_item&);
public:
Sales_item& operator+=(const Sales_item&);
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;
};
1。在#define和include以及include和class之间加上空行,这样可以使程序更容易阅读。
2。在class中对于访问标号的个数并没有限定,所以可以多用几个来增加程序的可读性(不是无限制的使用)
比如说将类的构造函数放在一个访问标号下,类的复制控制放在一个访问标号下,将类的友元放在一个标号下
类的操作符重载放在一个标号下,其他的接口放在一起,对于private将数据放在一起,函数放在一起。
这样可以使类的成员给人一幕了然的感觉。易于查找个使用。