当前位置: 代码迷 >> 人工智能 >> 【error C2512】VC++编译异常 no appropriate default constructor available
  详细解决方案

【error C2512】VC++编译异常 no appropriate default constructor available

热度:6810   发布时间:2013-02-26 00:00:00.0
【error C2512】VC++编译错误 no appropriate default constructor available

派生类在构造的时候,会先调用基类的构造函数。

如果,基类构造函数参数列表为空,那么不需要给该函数传参。

如:

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的编译错误


  相关解决方案