vc++ 编译错误“no appropriate default constructor available”解决方法

转自:http://www.tuicool.com/articles/JZnQ73

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

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

如:

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

你可能感兴趣的:(vc++ 编译错误“no appropriate default constructor available”解决方法)