gpt4 book ai didi

c++ - C++函数匹配(内置转换和类类型转换的优先级)

转载 作者:行者123 更新时间:2023-12-01 14:52:48 28 4
gpt4 key购买 nike

我有这个代码:

class A
{
public:
operator int() const
{
return 100;
}
int operator+ ( int a)
{
return 10 + a;
}
};

int main()
{
A a;
int b = a + 11.5;
}

在这段代码中,编译器告诉我调用“+”是不明确的,但是我认为只有两种方法可以调用 +:
  • 使用类类型转换,将对象a转换为int类型
  • 11.5转换为int类型,然后使用operator+

  • 我认为第二种情况的优先级高于第一种情况,但是为什么会有歧义?

    最佳答案

    我想出了解决这个问题的方法。为了匹配重载函数,必须匹配每个参数而没有缺点,并且至少有一个是有利的,并且不能使用第一个和第二个来比较优点和缺点

    关于c++ - C++函数匹配(内置转换和类类型转换的优先级),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61615800/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com