具有默认参数的重载函数导致C4800

问题描述

我正在使用vs2019中的以下代码,但编译错误为C4800。

我知道我可以取消它,但是我认为这段代码具有一些模棱两可的模式,实际上可能是在调用错误函数。有什么建议吗?谢谢。

我正在考虑删除第二个func,并且只给str2一个认值nullptr。

Def.h
class MyClass
{
    int Func(const char* str1,const char* str2,bool optional = false);
    int Func(const char* str1,bool optional = false)
    {
        Func(str1,str1,optional);
    }
}

UseDef.cpp

MyClass _myClassInst;
_myClassInst.Func(str1,str2); // error C4800: Implicit conversion from 'const char *' to bool

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)