相关疑难解决方法(0)

具有相同名称的C++虚拟覆盖函数

我有类似的东西(简化)

class A
{
  public:
    virtual void Function () = 0;
};

class B
{
  public:
    virtual void Function () = 0;
};

class Impl : public A , public B
{
  public:
        ????
};
Run Code Online (Sandbox Code Playgroud)

如何为A实现Function()和为B实现Function()?Visual C++允许您只定义内联的特定函数(即不在cpp文件中),但我认为它是一个扩展.海湾合作委员会抱怨这一点.是否有标准的C++方式告诉编译器我要覆盖哪个函数?

(visual c ++ 2008)

class Impl : public A , public B
{
  public:
     void A::Function () {  cout << "A::Function" << endl; }
     void B::Function () {  cout << "B::Function" << endl; }
};
Run Code Online (Sandbox Code Playgroud)

谢谢!

c++ virtual overriding diamond-problem

20
推荐指数
2
解决办法
4160
查看次数

从不同的基类重载同名的虚函数.可能吗?

标题可能令人困惑.

假设我们有以下设置;

class A
{
public:
    virtual void fn() = 0;
};

class B
{
public:
    virtual int fn() {};
};

class C: public A, public B
{
};
Run Code Online (Sandbox Code Playgroud)

有什么办法来定义A::fnclass C

c++ inheritance overriding virtual-functions

9
推荐指数
1
解决办法
1674
查看次数