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、プラットフォームToolset v140です。
コンパイラがこの警告を発行しないのはなぜですか? – IInspectable
警告は正しいですが、なぜコンパイラVS2012はこの警告を出さないのですか? – rich
それは奇妙な質問です。それはアポロ13号の宇宙飛行士を救助するためにスペースシャトルを送っていなかった理由を聞くのとほぼ同じです。論理的な飛躍を遂げる。 – IInspectable