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; }