Visual Studio Compiler warning C4250 ('class1' : inherits 'class2::member' via dominance)

前端 未结 5 2095
梦毁少年i
梦毁少年i 2020-12-10 04:59

The following code generates warning C4250. My question is, what\'s the best solution to it?

class A
{
  virtual void func1();
}

class B : public A
{
}

cla         


        
5条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-10 05:18

    Easy solve

    class A
    {
      virtual void func1();
    }
    
    class B : public A
    {
    }
    
    class C : public A
    {
      virtual void func1();
    }
    
    class D : public B, public C
    {
      virtual void func1()
      {
        C::func1(); 
      }
    }
    
    int main()
    {
      D d;
      d.func1(); // Causes warning
    }
    

提交回复
热议问题