C++之erro: no matching function for call to

这里写自定义目录标题

事情是这样的:
主函数调用时:

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)

再次编译:
在这里插入图片描述
现在没问题了

原来是调用的顺序和初始化的参数顺序不一致,我想了想,毕竟编译器还是没有那么智能的。

虽然问题比较小白,但是为我的机智点赞,希望路过的大佬们有更好地观点或者更好地方法能指点一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值