C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++の派生クラスの仮想関数


C ++の仮想関数は、派生クラスオブジェクトの種類を知らなくても、基本クラスポインターのリストを作成し、任意の派生クラスのメソッドを呼び出すために使用します。仮想関数は、実行時に遅く解決されます。

基本クラスの仮想関数がかつてのメンバー関数として宣言された場合、その基本クラスから派生したすべてのクラスで仮想関数になります。したがって、仮想基本クラス関数の再定義されたバージョンを宣言するときに、派生クラスでキーワードvirtualを使用する必要はありません。

サンプルコード

#include<iostream>
using namespace std;
class B {
   public:
      virtual void s() {
         cout<<" In Base \n";
      }
};
class D: public B {
   public:
      void s() {
         cout<<"In Derived \n";
      }
};
int main(void) {
   D d; // An object of class D
   B *b= &d; // A pointer of type B* pointing to d
   b->s(); // prints"D::s() called"
   return 0;
}
を出力します

出力

In Derived

  1. C++のクラスとオブジェクト

    クラスは、オブジェクト指向の概念をサポートし、ユーザー定義のデータ型であるため、C++の主要な機能です。クラスはオブジェクトの仕様を提供し、データ変数と、単一のパッケージでデータを操作するための関数を含みます。 クラス定義 クラス定義は、キーワードclassで始まり、次にクラス名で始まります。その後、クラス本体が定義されます。中括弧で囲まれています。クラス定義には、セミコロンまたはその後の定義のリストが含まれている必要があります。 C++でのクラス定義の例は次のとおりです。 class student {    int rollno;    char

  2. C ++の変数のストレージクラスとは何ですか?

    ストレージクラスは、C ++プログラム内の変数や関数のスコープ(可視性)と存続期間を定義します。これらの指定子は、変更するタイプの前にあります。 C++プログラムで使用できる次のストレージクラスがあります。 自動 登録 静的 外部 可変 Cでは、自動ストレージクラス指定子を使用すると、自動ストレージを使用して変数を明示的に宣言できます。自動ストレージクラスは、ブロック内で宣言された変数のデフォルトです。自動ストレージを持つ変数xは、xが宣言されたブロックが終了すると削除されます。 自動ストレージクラス指定子は、ブロックで宣言された変数の名前または関数パラメーターの名前にのみ適用できます