c – Visual Studio编译器警告C4250(‘class1’:通过支配继承’
发布时间:2020-12-16 03:11:48 所属栏目:百科 来源:网络整理
导读:以下代码生成警告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} 根据我所看到的
以下代码生成警告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; 虚拟继承假设解决了歧义. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |