1、&是引用吗?
Sales_item operator+(const Sales_item&, const Sales_item&);
两个引用,省去参数名称而已。
&放在变量前面是引用,比如 int &r = I1;
2、够造函数加个冒号啥意思?
Sales_item(const std::string &book):
isbn(book), units_sold(0), revenue(0.0) { }
3、函数声明后又有个const,啥意思?
bool same_isbn(const Sales_item &rhs) const
{ return isbn == rhs.isbn; }
【解释】
1、构造函数后冒号的含义:
构造函数后的但冒号是初始化列表,用以初始化类成员变量
2、函数声明后的const含义:
const改变了隐含的this形参的类型。这样在调用total.same_isbn(trans)时,隐含的this形参将是一个指向total对象的const Sales_item * 类型的指针。
如同下面函数体定义一样
bool Sales_item::same_isbn(const Sales_item * const this,
const Sales_item &rhs) const
{ return isbn == rhs.isbn; }