41、42知识点1:委托构造函数:一个委托构造函数使用它所属类的其他构造函数执行它自己的初始化过程。
class OH{
OH(string s, int a, int b):book(s),price(a),sale(b){} //三参数构造函数的参数列表和函数体首先被执行
OH():OH("",0,0);//默认构造函数又委托给了三参数构造函数
OH (istream& is):OH(){}//OH (istream& is)是一个委托构造函数,它委托给了默认构造函数OH()
string book;
int price;
int sale;
};
知识点2:当构造函数委托给另一个构造函数时,受委托的构造函数的初始值列表及其函数体先被执行,接着才会执行到委托函数的函数体。
class OH{
OH(string s, int a, int b):book(s),price(a),sale(b){cout<<"OH(string s, int a, int b)"<<endl;} //三参数构造函数的参数列表和函数体首先被执行
OH():OH(" ",0,0);//默认构造函数又委托给了三参数构造函数
OH (istream& is):OH(){cout<<"OH (istream& is)"<<endl;}//OH (istream&