[解決済み】バーチャル/ピュアバーチャルの説明
質問
ある関数がvirtualとして定義されている場合、それは具体的にどういう意味ですか、またpure virtualと同じですか?
どのように解決するのですか?
から ウィキペディアの仮想機能 ...
オブジェクト指向プログラミングにおいて、C++やObject Pascalなどの言語では、仮想関数や仮想メソッドは、動的ディスパッチが容易な継承可能かつオーバーライド可能な関数やメソッドであるとされています。この概念は、オブジェクト指向プログラミング(OOP)の(実行時)ポリモーフィズムの重要な部分である。つまり、仮想関数は実行される関数のターゲットを定義しますが、そのターゲットはコンパイル時にはわからない可能性があります。
非仮想関数と異なり、仮想関数がオーバーライドされると、その関数が作成された階層だけでなく、最も派生したバージョンがクラス階層のすべての階層で使用されます。したがって、もしベースクラス を呼び出します。 は、基底クラスで定義されたバージョンではなく、派生クラスで定義されたバージョンが使用されます。
これは非仮想関数とは対照的で、派生クラスでオーバーライドすることは可能ですが、"new" バージョンは派生クラス以下でのみ使用され、ベースクラスの機能は全く変更されません。
ここで...
純粋仮想関数または純粋仮想メソッドは、派生クラスが抽象クラスでない場合、派生クラスが実装することが要求される仮想関数である。
純粋仮想メソッドが存在する場合、そのクラスは "abstract" であり、単独でインスタンス化することはできません。代わりに、純粋仮想メソッドを実装した派生クラスを使用する必要があります。純粋仮想はベースクラスではまったく定義されていないので、派生クラスでは は を定義しなければ、その派生クラスも抽象クラスとなり、インスタンス化することができません。抽象メソッドを持たないクラスだけがインスタンス化できます。
virtual は基底クラスの機能をオーバーライドする方法を提供し、pure-virtual は基底クラスの機能をオーバーライドする方法を提供します。 が必要です。 となります。
関連
-
[解決済み】Visual Studio 2013および2015でC++コンパイラーエラーC2280「削除された関数を参照しようとした」が発生する
-
[解決済み] explicit キーワードの意味は?
-
[解決済み] using namespace std;」はなぜバッドプラクティスだと言われるのですか?
-
[解決済み] static_cast, dynamic_cast, const_cast, reinterpret_cast はいつ使うべきですか?
-
[解決済み] ルール・オブ・スリーとは?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] C++でextern "C "を使用した場合の効果は?
-
[解決済み] 仮想デストラクタはいつ使うのか?
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】非静的メンバ関数への参照を呼び出す必要がある
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み】Eclipse IDEでC++エラー「nullptrはこのスコープで宣言されていません」が発生する件
-
[解決済み】仮想関数と純粋仮想関数の違い【重複あり