virtual
C++のキーワードの目的がわかりません。C と Java はよく知っていますが、C++ は初めてです
ウィキペディアより
オブジェクト指向プログラミングでは、仮想関数または仮想メソッドは、同じシグネチャを持つ関数によって継承クラス内で動作をオーバーライドできる関数またはメソッドです。
virtual
ただし、キーワードを使用せずに、以下に示すようにメソッドをオーバーライドできます
#include <iostream>
using namespace std;
class A {
public:
int a();
};
int A::a() {
return 1;
}
class B : A {
public:
int a();
};
int B::a() {
return 2;
}
int main() {
B b;
cout << b.a() << endl;
return 0;
}
//output: 2
以下に示すように、関数 A::a は B::a で正常にオーバーライドされます。virtual
私の混乱を悪化させているのは、これもウィキペディアからの仮想デストラクタに関するこの声明です。
次の例に示すように、最も派生したクラスのデストラクタが常に呼び出されるようにするには、C++ 基本クラスに仮想デストラクタを設定することが重要です。
virtual
また、親のデストラクタを呼び出すようにコンパイラに指示しますか? virtual
これは、「関数をオーバーライド可能にする」という私の当初の理解とは大きく異なるようです