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

C++でのポリモーフィズムの例


ポリモーフィズムは、オブジェクト指向プログラミングの重要な機能であり、複数の形式を持つことを意味します。これは、C++ではコンパイル時のポリモーフィズムと実行時のポリモーフィズムに分けられます。

コンパイル時のポリモーフィズムの例は、関数のオーバーロードまたは演算子のオーバーロードです。ランタイムポリモーフィズムの例は、関数のオーバーライドです。

C++で関数のオーバーロードを使用したポリモーフィズムの例を以下に示します。

#include <iostream>
using namespace std;
class Example {
   public :
   void func(int a) {
      cout << "\nThe value of a: " << a;
   }
   void func(int a, int b) {
      cout << "\nThe value of a: " << a;
      cout << "\nThe value of b: " << b;
   }
   void func(char c) {
      cout << "\nThe value of c: " << c;
   }
};
int main() {
   Example obj;
   cout<< "\nOne int value";
   obj.func(5);
   cout<< "\nOne char value";
   obj.func('A');
   cout<< "\nTwo int values";
   obj.func(7, 2);
   return 0;
}

出力

上記のプログラムの出力は次のとおりです。

One int value
The value of a: 5
One char value
The value of c: A
Two int values
The value of a: 7
The value of b: 2

それでは、上記のプログラムを理解しましょう。

Exampleクラスのメンバー関数func()がオーバーロードされています。必要に応じて選択できる、さまざまなパラメーターを持つ3つのfunc()関数があります。このためのコードスニペットは次のとおりです。

class Example {
   public :
   void func(int a) {
      cout << "\nThe value of a: " << a;
   }
   void func(int a, int b) {
      cout << "\nThe value of a: " << a;
      cout << "\nThe value of b: " << b;
   }
   void func(char c) {
      cout << "\nThe value of c: " << c;
   }
};

関数main()で、クラスExampleのオブジェクトobjが作成されます。関数func()は、関数のオーバーロードを示すためにさまざまな引数で呼び出されます。このためのコードスニペットは次のとおりです。

int main() {
   Example obj;
   cout<< "\nOne int value";
   obj.func(5);
   cout<< "\nOne char value";
   obj.func('A');
   cout<< "\nTwo int values";
   obj.func(7, 2);
   return 0;
}

  1. C++での最大消去値

    正の整数の配列が与えられた場合、タスクはすべての一意の要素を含むサブ配列を消去することです。サブアレイを消去することで得られるものは、その要素の合計に等しくなります。 現在のサブアレイの前後の項を消去して最大合計を返します。1つのサブアレイを正確に消去することで最大合計を取得できます。 配列arr aのサブ配列と呼ばれます aの連続したサブシーケンスを形成する場合 つまり、一部の(l、r)のa [l]、a [l + 1]、...、a[r]に等しい場合です。たとえば、 入力-1 − arr[ ] = { 1,2,4,5,6 } 出力 − 17 説明 −最適なサブアレイは{2,4

  2. C++での例を含む式ツリー

    式ツリーは、ツリーの各ノードが演算子またはオペランドで構成される特殊なタイプの二分木です。 リーフノード ツリーのオペランドを表します 。 非リーフノード ツリーの演算子を表します 。 例: 簡単に解決できる中置式を取得するには、順序トラバーサルを使用してツリーをトラバースする必要があります。