`
swincle
  • 浏览: 78655 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Overloaded function call matches

    博客分类:
  • C++
 
阅读更多

C++按下列三个步骤的先后顺序找到匹配并调用函数:

(1)寻找一个严格匹配,如果找到了,就用那个函数;

(2)通过相容类型的隐式转换寻求一个匹配,如果找到了,就用那个函数;

(3)通过用户定义的转换寻求一个匹配,若能查出有唯一的一组转换,就用那个函数。

例如,重载函数print的匹配:

void print(double);
void print(int);

void func() {
    print(1);             //匹配int;-----顺序1
    print(1.0);          //匹配double;-----顺序1
    print('a');           //匹配int;-----顺序2
    print(3.1415f);  //匹配double;-----顺序2
}

 C++允许int型容到long型,int型容到double型的隐式转换。但若必须在两者之间抉择时,则会引起错误。

例如

void print(long a);
void print(double a);

void func(int a) {
    print(a);             //这里的print要匹配哪一个呢?
}
 为避免匹配冲突,在调用时,应显示表明是print(long(a))还是print(double(a))。
分享到:
评论

相关推荐

    ambiguous overloaded function call(解决方案).md

    ambiguous overloaded function call(解决方案).md

    overloaded function function is ambiguous(解决方案).md

    overloaded function function is ambiguous(解决方案).md

    解决VS2005SP1/VS2008/Win7SDK冲突

    1.error C2733: second C linkage of overloaded function '_interlockedbittestandset' not allowed 2.atlcom 中的 rgs…… 场景: 1.在VS2005 SP1 之上安装 Microsoft SDK 7.0 2.同PC上安装VS2005 SP1与VS2008/...

    社区视频监控系统 vs2008开发

    在加强社区内部的管理中,拥有可以对社区内部进行监控的系统可以节省下来很大一部分人力,并且比人为的巡逻更加可靠、安全。社区视频监控系统主要是利用摄像头和视频采集卡进行视频监控的,本社区视频监控系统主要...

    json error: Use of overloaded operator [] is ambiguous错误的解决方法

    然而,当使用C++的`Json::Value`库(如JsonCpp)时,可能会遇到“Use of overloaded operator [] is ambiguous”这样的编译错误。这个错误通常发生在尝试使用0作为数组下标访问`Json::Value`对象时。 在C++中,`[]`...

    Scala中使用JSON.toJSONString报错原因分析-解决方案.docx

    在 Scala 中使用 JSON.toJSONString 时,可能会出现ambiguous reference to overloaded definition错误,该错误的原因是由于 JSON.toJSONString 方法的重载导致的。下面对该错误的原因进行分析和解决方案的描述。 ...

    Zabbix动态监控磁盘I/O

    《Zabbix动态监控磁盘I/O详解》 在IT运维管理中,监控系统性能是至关重要的环节,其中磁盘I/O(输入/输出)监控尤为关键,因为它是衡量系统响应速度和数据处理能力的重要指标。Zabbix作为一个强大的开源监控解决...

    Overloaded-kernel-for-XPSP3.rar_内核 重载_内核重载_重载内核

    在Windows XP Service Pack 3(XP SP3)环境中,"Overloaded-kernel-for-XPSP3.rar" 提供了一个经过重载的内核,这表明它可能包含了对原始XP内核的修改或扩展,以实现特定的目标。这种内核通常由开发人员使用Windows...

    VC6到VS2010中的转换

    在迁移过程中,可能会遇到类似 `error C2668: 'sqrt': ambiguous call to overloaded function` 的错误提示。这通常是因为在VC6中,`sqrt` 函数可能被定义为接受不同类型的参数(如 `int`, `float`, `long double`)...

    Sybex - Mastering Visual Basic .NET VB NET Functions (VBL).pdf

    VB.NET uses overloaded forms of the same function, and this is an important difference you have to keep in mind as you work with the built-in functions. If you omit an optional argument, you must ...

    20种VC++编译错误信息

    错误 C2784: 'type ReturnType operator(type1, type2)': no instance of overloaded function matches the argument list - **描述**:没有匹配重载函数的实例。 - **原因**: - 函数重载中没有合适的版本来处理...

    系统编程语言Dale.zip

    overloaded functions;anonymous functions;function structs;reference parameters;object lifetime operations;namespaces;modules;concepts; andcompiler introspection.示例代码:(import cstdio) (def main...

    Google C++ Style Guide(Google C++编程规范)高清PDF

    You can declare functions in a way that allows the compiler to expand them inline rather than calling them through the usual function call mechanism. Pros: Inlining a function can generate more ...

    TFT-LCD技术方案研究与管理方案研究

    TFT-LCD(Thin Film Transistor - Liquid Crystal Display)技术是一种广泛应用在电子设备中的显示技术,包括电视、电脑显示器、手机、平板电脑等。它的核心在于利用薄膜晶体管(TFT)来驱动液晶分子,从而控制光线...

    Functionally Overloaded Linux Kernel-开源

    该项目旨在将尽可能多的内核项目集中在一起,在可能的情况下消除冲突,以便实验性内核项目可以更安全地获得更大的曝光度,并可以在更多不同的条件下对这些项目进行测试

    plsqldev14.0.0.1961x32多语言版+sn.rar

    Connection matches did not process proxy user expressions (user1[user2]@database) correctly for the application background DBMS_Jobs could not be edited on Oracle19 (‘xxxx’ is not a valid

    plsqldev14.0.0.1961x64多语言版+sn.rar

    64位版本的 PLSQL 正式版,只能运行在64位系统中,...Connection matches did not process proxy user expressions (user1[user2]@database) correctly for the application background DBMS_Jobs could not be edited

    c++常见20个编译错误

    12、error C2511: 'reset': overloaded member function 'void (int)' not found in 'B'。 此错误是由于重载的函数“void reset(int)”在类“B”中找不到。 13、error C2555: 'B::f1': overriding virtual ...

    A_New_Variant_of_the_Matsumoto-Imai_Cryptosystem_t

    #### 摘要与背景 ...尽管最初的多变量密码体制由马塚本和伊邛建立后,由于线性化方法的存在而遭到了攻击,但后续的研究者如Patarin等人提出了许多MI系统的变体和扩展。 #### 扰动方法概述 ...这种方法的关键是在原有...

    用递归的方法画分形图

    错误 1 error C2668: 'sqrt' : ambiguous call to overloaded function d:\wordplay\c++\范例\fractral递归方法画分图形\stdafx.cpp 19 错误 2 fatal error C1903: unable to recover from previous error(s); ...

Global site tag (gtag.js) - Google Analytics