このコードでC++のtryを使用してインストラクターの定義におけるC2509: - 定義の中でキャッチ
A::A()
try: B()
{}
catch(Exception e) {}
、私はC2509エラーがあります。 ヘッダーファイルの定義(F12)または定義の(Ctrl + F12)に移動しようとすると機能しません。
私は
A::A()
{
try
{ B();}
catch(Exception e) {}
}
を試みたが、クラスBに純粋仮想関数があるので、これは不可能です。
私はAが明示的抽象をinitaliseことができ、その場合1)はB.から派生を想定し、今だ
try: {}
catch
と
try{}
catch
エラー名もショートカットも、C++では普遍的ではありません。 – user463035818
私はあなたの質問に答えてくれたと思います。「クラスBには純粋な仮想関数があるので、これは不可能です。 イニシャライザリストを含む抽象クラスをインスタンス化することはできません。 – virgesmith
@virgesmithあなたの答えをありがとう、なぜ私はtry {}ではなく、try:の後に抽象クラスを初期化できますか? –