1.
善用提供默认实参的构造函数,因为它能减少代码重复。
举例:假设有如下构造函数
1 class Sales_item { 2 public: 3 // default argument for book is the empty string 4 Sales_item(const std::string &book = ""): 5 isbn(book), units_sold(0), revenue(0.0) { } 6 Sales_item(std::istream &is); 7 // as before 8 }
在以如下两种方式定义对象时:
Sales_item empty; Sales_item Primer_3rd_Ed("0-201-82470-1");
在 empty 的情况下,使用默认实参,而 Primer_3rd_ed 提供了一个显式实参。
这样,可以省略一个构造函数:
Sales_item(): units_sold(0), revenue(0.0) { }
2.
既定义了算术操作符又定义了相关复合赋值操作符的类,一般应使用复合赋值实现算术操作符。