对基类中的重载函数的歧义调用

阿图利亚

我有一个带有重载函数的类A和带有重载函数的派生类。

class A
{
public:
    virtual void func1(float)
    {
        cout<<"A::func1(float) "<< endl;
    }
    void func1(int)
    {
        cout<<"A::func1(int) "<< endl;
    }
};

class B: public A
{
public:
    //using A::func1;

  void func1(float)
  {
      cout << " B::Func1(float)" << endl;
  }
};

int main()
{
    B obj;
    A obj1;

    obj.func1(10);
    obj1.func1(9.9);   // Getting error in call

    return 0;
}

错误C2668:'A :: func1':对重载函数的模棱两可的调用

有人可以解释吗?

谢谢

我是谁

值9.9可以转换为整数,也可以将float转换为接口。因此,发现要调用哪个函数存在歧义:

您可以提及显式转换,例如:

obj1.func1((float)9.9);   

或者

obj1.func1((int)9.9)

考虑下面的简单测试代码:

#include <iostream>

using namespace std;


void test(int a)
{
  cout <<" integer "<<a<<endl;
};


void test(float a)
{
  cout <<"Float "<<a<<endl;
}

int main ()
{
   test(10.3);
}

尝试注释上面的任何一个函数,它将完美地工作,并且,如果您在代码中同时引入了这两个函数,则会发现模棱两可。

希望这个对你有帮助 ;)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

重载类方法的歧义调用

来自分类Dev

儿童类C ++中的歧义函数调用

来自分类Dev

C ++继承:调用重载的基类函数

来自分类Dev

对重载整数构造函数的歧义调用

来自分类Dev

模板编程:对重载函数的歧义调用

来自分类Dev

子类中的C ++基类函数重载

来自分类Dev

可变参数模板函数中对重载函数的歧义调用

来自分类Dev

C ++与Java中函数重载的歧义

来自分类Dev

Ruby中的歧义函数调用

来自分类Dev

VS2013中使用可变参数模板时“对重载函数的歧义调用”

来自分类Dev

在VS2013中使用可变参数模板时“对重载函数的歧义调用”

来自分类Dev

当在C ++中获得指向基类的指针时,为什么不为派生类对象调用重载函数?

来自分类Dev

对带有函数参数的重载函数进行模糊歧义调用

来自分类Dev

基类的模板函数重载

来自分类Dev

解决重载函数的歧义

来自分类Dev

重载函数的歧义

来自分类Dev

C ++模板和对重载函数的歧义调用

来自分类Dev

调用重载的构造函数会产生歧义错误C ++

来自分类Dev

如何解决“ fpclassify”:对重载函数的歧义调用

来自分类Dev

C ++模板和对重载函数的歧义调用

来自分类Dev

类模板构造函数重载解析度歧义

来自分类Dev

重载虚拟函数并通过指向基类的指针调用派生函数

来自分类Dev

嵌套类中对operator []的歧义调用

来自分类Dev

在多个基类中没有对模板化成员函数的访问或歧义检查

来自分类Dev

调用函数中的歧义。隐式转换?

来自分类Dev

构造函数调用中的歧义类型转换

来自分类Dev

如何使用SFINAE解决重载函数中的歧义

来自分类Dev

由于std :: function而在构造函数重载中存在歧义

来自分类Dev

由于std :: function而在构造函数重载中存在歧义

Related 相关文章

  1. 1

    重载类方法的歧义调用

  2. 2

    儿童类C ++中的歧义函数调用

  3. 3

    C ++继承:调用重载的基类函数

  4. 4

    对重载整数构造函数的歧义调用

  5. 5

    模板编程:对重载函数的歧义调用

  6. 6

    子类中的C ++基类函数重载

  7. 7

    可变参数模板函数中对重载函数的歧义调用

  8. 8

    C ++与Java中函数重载的歧义

  9. 9

    Ruby中的歧义函数调用

  10. 10

    VS2013中使用可变参数模板时“对重载函数的歧义调用”

  11. 11

    在VS2013中使用可变参数模板时“对重载函数的歧义调用”

  12. 12

    当在C ++中获得指向基类的指针时,为什么不为派生类对象调用重载函数?

  13. 13

    对带有函数参数的重载函数进行模糊歧义调用

  14. 14

    基类的模板函数重载

  15. 15

    解决重载函数的歧义

  16. 16

    重载函数的歧义

  17. 17

    C ++模板和对重载函数的歧义调用

  18. 18

    调用重载的构造函数会产生歧义错误C ++

  19. 19

    如何解决“ fpclassify”:对重载函数的歧义调用

  20. 20

    C ++模板和对重载函数的歧义调用

  21. 21

    类模板构造函数重载解析度歧义

  22. 22

    重载虚拟函数并通过指向基类的指针调用派生函数

  23. 23

    嵌套类中对operator []的歧义调用

  24. 24

    在多个基类中没有对模板化成员函数的访问或歧义检查

  25. 25

    调用函数中的歧义。隐式转换?

  26. 26

    构造函数调用中的歧义类型转换

  27. 27

    如何使用SFINAE解决重载函数中的歧义

  28. 28

    由于std :: function而在构造函数重载中存在歧义

  29. 29

    由于std :: function而在构造函数重载中存在歧义

热门标签

归档