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

C++での仮想関数とランタイムポリモーフィズム


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

仮想関数の主な用途は、ランタイムポリモーフィズムを実現することです。ランタイムポリモーフィズムは、基本クラスタイプのポインター(または参照)を介してのみ実現できます。また、基本クラスポインタは、派生クラスのオブジェクトだけでなく、基本クラスのオブジェクトも指すことができます。上記のコードでは、基本クラスのポインタ「b」には、派生クラスのオブジェクト「d」のアドレスが含まれています。

サンプルコード

#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++の天井関数と床関数

    天井関数 ceil関数は、その値以上の可能な限り最小の整数値を返します。この関数は、C++言語の「cmath」ヘッダーファイルで宣言されています。セル値が計算されるのは単一の値です。変数のデータ型は、double / float /longdoubleのみである必要があります。 これがC++言語でのceil関数の構文です double ceil(double x); float ceil(float x); これがC++言語のceil関数の例です 例 #include <iostream> #include <cmath> using namespace std;

  2. C++でのフレンドクラスと関数

    クラスのフレンド関数はそのクラスのスコープ外で定義されていますが、クラスのすべてのプライベートメンバーと保護されたメンバーにアクセスする権利があります。フレンド関数のプロトタイプはクラス定義に表示されますが、フレンドはメンバー関数ではありません。 フレンドは、関数、関数テンプレート、メンバー関数、またはクラスまたはクラステンプレートにすることができます。この場合、クラス全体とそのすべてのメンバーがフレンドになります。 関数をクラスのフレンドとして宣言するには、次のように、クラス定義の関数プロトタイプの前にキーワードfriendを付けます- class Box { double width;