[解決済み] C++における純粋仮想デストラクタ
2022-04-23 06:04:34
質問
と書いてはいけないのでしょうか?
class A {
public:
virtual ~A() = 0;
};
抽象的な基底クラスのために?
少なくともMSVCではそれでコンパイルできるのですが......。実行時にクラッシュしませんか?
解決方法は?
デストラクタの実装も必要です。
class A {
public:
virtual ~A() = 0;
};
inline A::~A() { }
で十分です。
そして、これは下馬評を得たので、はっきりさせておくと、Aから何かを派生させて、それを削除したり破壊しようとした場合。
A
のデストラクタは最終的に呼び出されます。これは純粋なものであり、実装を持たないので、未定義の動作が発生します。ある人気のあるプラットフォームでは、purecallハンドラが呼び出され、クラッシュします。
編集:宣言をより適合するように修正し、コンパイル時に http://www.comeaucomputing.com/tryitout/
関連
-
[解決済み] Javaにデストラクタはありますか?
-
[解決済み] 純粋な仮想関数呼び出し」のクラッシュはどこから来るのか?
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] 仮想デストラクタはいつ使うのか?
-
[解決済み] C++で仮想関数が必要な理由とは?
-
[解決済み] C++でインターフェイスを宣言するには?
-
[解決済み] ベースの仮想デストラクタを明示的に呼び出す必要がありますか?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】高放射能環境下で使用するアプリケーションのコンパイルについて
-
[解決済み] なぜC++では純粋仮想デストラクタが必要なのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】coutはstdのメンバではない
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み】識別子 "string "は未定義?
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】エラー:free(): 次のサイズが無効です(fast)。
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み】なぜ、サイズ8の初期化されていない値を使用するのでしょうか?
-
[解決済み】演算子のオーバーロード C++; <<操作のパラメータが多すぎる