派生类在构造的时候,会先调用基类的构造函数。
如果,基类构造函数参数列表为空,那么不需要给该函数传参。
如:
CMe::CMe(){ cout<<"CMe Be Called"<<endl;}
那么,若有
class CMySon: public CMe{public: CMySon(int times,char * son); };
则CMySon的定义只需这样:
CMySon::CMySon(int times,char * son){ cout<<"CMySon Be Called"<<endl;}
如果基类构造函数带参,像这样:
CMe::CMe(char * son){ cout<<"CMe Be Called"<<endl;}那么,派生类构造函数需要向基类构造函数传递参数:
CMySon::CMySon(int times,char * son):CMe(son){ cout<<"CMySon Be Called"<<endl;}如果不加:CMe(son)则会产生no appropriate default constructor available的编译错误