c++通过支配警告继承
C++ Inheritance via dominance warning
我正在尝试实现一个实现许多接口的相当大的对象。其中一些接口是纯虚拟的。我可能在钻石继承方面有问题。Visual Studio报告了一个C4250 ('class1' : inherits 'class2::member' via dominance)
的警告。首先,这些类实际上是继承的。下面是导致这个问题的部分类设计。
A B C
/ /
/ /
AB BC
| |
| BC2
| |
D: Implementation of B, C, BC, BC2
/
Big
在整个树中,只有D实现了虚方法,没有其他方法的定义。B的所有虚方法都列在警告中。如果重要,D是一个完整的类。
我读到这种情况发生在Boost序列化中,忽略警告是安全的。
我试图实现的方法有效吗?无视这个警告安全吗?
注释1:这不是Visual Studio编译器警告C4250的副本('class1':继承'class2::member'通过支配),我已经尝试了那里提出的解决方案。
注2:我也可以发送类图,但它比这更复杂一些。
编辑:完整的警告如下:
warning C4250: 'gge::resource::ImageResource' : inherits
'gge::graphics::ImageTexture::gge::graphics::ImageTexture::drawin'
via dominance
gge::resource::ImageResource
为Big in the drawing, gge::graphics::ImageTexture
为D, draw是我得到警告的六种方法之一
一切都绝对有效。编译器允许对有效代码发出警告,这里没有问题。您可以尝试使用using
声明使警告静音。如果这不起作用(可能是由于MSVC的错误),请使用pragma
将其静音。
相关文章:
- 警告处理为错误这里有什么问题
- 继承函数的重载解析
- 继承期间显示未知行为的子类
- 头文件-继承c++
- 为什么在保护模式下继承升级不起作用
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- cppcheck在const std::string[]上引发警告
- 通过继承类使用来自不同命名空间的运算符
- 子目录是否继承属性,例如add_definitions,include_directories和父Cmakelist.t
- GCC对可能有效的代码抛出init list生存期警告
- 如何在BST的这个简单递归实现中消除警告
- 带有C 11继承的构造函数的警告
- 为什么 GCC 在使用继承的构造函数时警告我无用的强制转换
- 为什么GCC警告使用STD ::元组和虚拟继承来调用非平凡的动作分配运算符
- 如何禁用视觉工作室中父母继承的特定警告
- C 模板继承问题(警告和错误)
- 从 std::streambif 继承时不兼容析构函数编译器警告
- 钻石继承方案在 G++ 中编译良好,但在 VC++/Eclipse 中产生警告/错误
- 具有多重继承的消息映射MFC:如何避免警告C4407和运行时崩溃
- c++通过支配警告继承