c – Visual Studio编译器警告C4250(‘class1’:通过支配继承’class2 :: member’)

c – Visual Studio编译器警告C4250(‘class1’:通过支配继承’class2 :: member’),第1张

概述以下代码生成警告C4250.我的问题是,最好的解决办法是什么? class A{ virtual void func1();}class B : public A{}class C : public A{ virtual void func1();}class D : public B, public C{}int main(){ D d; d.f 以下代码生成警告C4250.我的问题是,最好的解决办法是什么?
class A{  virtual voID func1();}class B : public A{}class C : public A{  virtual voID func1();}class D : public B,public C{}int main(){  D d;  d.func1(); // Causes warning}

根据我所看到的,应该可以做到这一点:

class D : public B,public C{  using B::func1();}

但是,这实际上并没有做任何事情.我目前解决的方法是:

class D : public B,public C{  virtual voID func1() { B::func1(); }}

大家对此有何看法?

解决方法 你尝试从A类继承公共虚拟机吗?我认为应该解决它.
class B :public virtual A;    class C :public virtual A;    class D : public virtual B,public virtual C;

虚拟继承假设解决了歧义.

总结

以上是内存溢出为你收集整理的c – Visual Studio编译器警告C4250(‘class1’:通过支配继承’class2 :: member’)全部内容,希望文章能够帮你解决c – Visual Studio编译器警告C4250(‘class1’:通过支配继承’class2 :: member’)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1253685.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存