类的对重载函数的调用不明确

117 篇文章 1 订阅

今天犯了一个错误:

HMenu(QWidget* _parent=0);
HMenu(QString _txt = " ", QWidget* _parent=0);

提示说:错误 1 error C2668: “HMenu::HMenu”: 对重载函数的调用不明确 f:\workspace\myclasslibraries\hgui\hgui\src\HMenu.h

在网上搜都是说由于int 或 float 等的隐式转换导致的,那么我就用在这个两个构造函数前加个explicit 呗,还是不行。

最后终于知道问题了,

HMenu(QWidget* _parent=0); 跟HMenu(),对于编译器来说是一个样的,所以编译器不知调用哪个函数,

HMenu(QWidget* _parent=0); 与 HMenu(QString _txt = “ ”, QWidget* _parent=0); 也是同样道理,

所以在QString _txt = " ",把默认参数(=" ")去掉了,就OK了。

当这两个构造函数在APP上还没有报错,但我想封装成一些控件到DLL里,就出现这个问题了,估计是C语言最后翻译函数的问题什么的吧——    ——

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值