这里写自定义目录标题
事情是这样的:
主函数调用时:
Luban luban("Luban",5,100,"red")
Luban.h文件:
class Luban:public Hero,public Shooter
{
public:
void show(void);
Luban(const string &name,int distance,const string &color,int leg);
~Luban();
private:
int leg;
Skin skin;
};
Luban.c成员初始化列表:
Luban::Luban(const string &name,int distance,const string &color,int leg):Hero(name),Shooter(distance),skin(color)
此时我以为自己写的代码万无一失,但是编译器还是报错了,来看看编译器报了什么错:
erro:no matching function for call to 'Luban::Luban(const char [6], int, int, const char [4])'
Luban luban(“Luban”,5,100,“red”);
编译器竟然说找不到匹配项,我想了又想,明明我已经对这个参数定义了,也初始化了,为什么会这样。
后来我才发现,原来是参数项不匹配。
修改一下:
Luban luban(“Luban”,100,“red”,5)
再次编译:
现在没问题了
原来是调用的顺序和初始化的参数顺序不一致,我想了想,毕竟编译器还是没有那么智能的。
虽然问题比较小白,但是为我的机智点赞,希望路过的大佬们有更好地观点或者更好地方法能指点一下。