GNU GCC の複数のデストラクター (g )
質問:
コード カバレッジの調査中GNU GCC (g) では、BaseClass と DerivedClass の両方で複数のデストラクターが観察されました。これらの複数のデストラクタはなぜ生成されますか?また、それらはどのように異なりますか?
答え:
Itanium C ABI では、3 種類のデストラクタが定義されています:
指定されたコード内の複数のデストラクター:
指定されたコードには仮想基本クラスが含まれているため、複数のデストラクターが生成されます。この場合:
デストラクターの選択的使用:
Itanium C ABI は、どのデストラクターが実行されるかを指定します:
カバレッジの影響:
100% の関数カバレッジを達成するには、これらのデストラクターを理解し、単体テストで適切に呼び出すことが重要です。たとえば、D0 を実行して両方のデストラクターをカバーするには、b_ptr を BaseClass* b_ptr として削除する必要があります。
以上がGNU GCC (g ) の複数のデストラクターはどのように異なり、なぜ生成されるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。