Visual Studio 2015中的警告C4594

富有的

使用以下代码:

class A
{};

class B : virtual public A
{};

class C : private B
{};

class D : public C
{};

我收到了一个编译器警告,这是我在VS2012中从未见过的

warning C4594: 
class 'main::D' can never be instantiated- indirect virtual base class 'main::A' is inaccessible

note: 'main::A' is a public base class of 'main::B'

note: 'main::B' is a private base class of 'main::C'

为什么我得到这个?

我的VS2015警告级别为/ W3,平台工具集v140。

干杯和hth。-阿尔夫

虚拟基类直接从最派生的类初始化。

因此,如果在大多数派生类中无法访问虚拟基础,则该代码无效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章