相关疑难解决方法(0)

C++ 函数重载类似转换

我收到一个错误,指出两个重载具有相似的转换。我尝试了太多东西,但没有任何帮助。

这是那段代码

CString GetInput(int numberOfInput, BOOL clearBuffer = FALSE, UINT timeout = INPUT_TIMEOUT);
CString GetInput(int numberOfInput, string szTerminationPattern, BOOL clearBuffer = FALSE, UINT timeout = INPUT_TIMEOUT);
Run Code Online (Sandbox Code Playgroud)

我不明白string怎么可能等于long

我正在使用 Visual C++ 6(是的,我知道它很旧,我正在处理遗留代码,所以我很无助)

编辑:触发错误的代码行是

l_szOption = GetInput(13, FALSE, 30 * 10);
Run Code Online (Sandbox Code Playgroud)

c++ overloading ambiguity

3
推荐指数
1
解决办法
1310
查看次数

VS 2010:2次重载有类似的转换

我不明白这里发生了什么

class A{};
class B : A {};

void func(A&, bool){}
void func(B&, double){}

int main(void)
{
    B b;
    A a;
    bool bo;
    double d;

    func(b, bo);
}
Run Code Online (Sandbox Code Playgroud)

编译时,Visual 2010会在线提供此错误 func(b, bo);

2 overloads have similar conversions
could be 'void func(B &,double)'
or       'void func(A &,bool)'
while trying to match the argument list '(B, bool)'
Run Code Online (Sandbox Code Playgroud)

我不明白为什么bool参数不足以解决过载问题.我已经看到了这个问题,并且在接受的答案中指出,bool应该更喜欢bool重载.在我的情况下,我看到第一个参数不足以选择好的函数,但为什么第二个参数不能解决模糊性?

c++ overloading

3
推荐指数
1
解决办法
276
查看次数

标签 统计

c++ ×2

overloading ×2

ambiguity ×1