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

C++を使用したオブジェクト指向プログラミングの基本概念


オブジェクト指向プログラミングは、オブジェクトを使用し、その機能を分類するプログラミングの一種です。オブジェクト指向プログラミングは、継承、ポリモーフィズム、データの非表示などの実世界のエンティティに基づいています。これは、データを結合し、これらのデータセットに対する機能を1つのエンティティにまとめて、使用を制限することを目的としています。

オブジェクト指向プログラミングのいくつかの基本的な概念は次のとおりです-

  • クラス
  • オブジェクト
  • カプセル化
  • ポリモーフィズム
  • 継承
  • 抽象化

クラス −クラスは、独自のメンバー、つまりデータメンバーとメンバー関数を持つデータ型です。これは、オブジェクト指向プログラミング言語でのオブジェクトの青写真です。これは、C++でのオブジェクト指向プログラミングの基本的な構成要素です。クラスのメンバーは、クラスのインスタンスを作成することにより、プログラミング言語でアクセスされます。

クラスのいくつかの重要なプロパティは次のとおりです-

  • クラス はユーザー定義のデータ型です。

  • クラスには、データメンバーやメンバー関数などのメンバーが含まれます。

  • データメンバー クラスの変数です。

  • メンバー機能 データメンバーを操作するために使用されるメソッドです。

  • データメンバーはクラスのプロパティを定義しますが、メンバー関数はクラスの動作を定義します。

クラスには、すべてに共通するプロパティと動作を持つ複数のオブジェクトを含めることができます。

構文

class class_name {
   data_type data_name;
   return_type method_name(parameters);
}

オブジェクト −オブジェクトはクラスのインスタンスです。これは、オブジェクト指向プログラミングで使用される特性と動作を備えたエンティティです。オブジェクトは、メモリを割り当てるために作成されるエンティティです。定義されたクラスには、オブジェクトが作成されるとすぐに割り当てられるメモリチャンク自体がありません。

構文

class_name object_name;

#include<iostream>
using namespace std;
class calculator {
   int number1;
   int number2;
   char symbol;
   public :
   void add() {
      cout<<"The sum is "<<number1 + number2 ;
   }
   void subtract() {
      cout<<"The subtraction is "<<number1 - number2 ;
   }
   void multiply() {
      cout<<"The multiplication is "<<number1 * number2 ;
   }
   void divide() {
      cout<<"The division is "<<number1 / number2 ;
   }
   calculator (int a , int b , char sym) {
      number1 = a;
      number2 = b;
      symbol = sym;
      switch(symbol){
         case '+' : add();
            break;
         case '-' : add();
            break;
         case '*' : add();
            break;
         case '/' : add();
            break;
         default : cout<<"Wrong operator";
      }
   }
};
int main() {
   calculator c1(12 , 34 , '+');
}

出力

The sum is 46

カプセル化 オブジェクト指向プログラミングでは、カプセル化はデータと情報を1つのユニットにまとめるという概念です。カプセル化の正式な定義は次のようになります。カプセル化とは、データと、データを操作できる関連機能を収集するためのバインドです。

簡単な実例でトピックを理解しましょう

私たちの大学には、コンピュータサイエンス、情報技術などの各コースの部門があります。 、電子機器など。これらの各部門には、追跡され、教えられている独自の学生と科目があります。各学部を、その学部の学生と教えられる科目に関するデータをカプセル化するクラスと考えてみましょう。また、学部には、タイミング、学習中に使用される方法などのコースを受講する学生が従うべきいくつかの固定ルールとガイドラインがあります。これは実際のカプセル化であり、データがあり、データを操作する方法があります。

>

オブジェクト指向プログラミングでのカプセル化の概念により、別の非常に重要な概念が可能です。それはデータの抽象化またはデータの非表示です。カプセル化するとデータが非表示になり、表示する必要のある情報のみが表示される可能性があります。

ポリモーフィズム 名前は、ポリモーフィズムが複数の形式であることを定義します。つまり、ポリモーフィズムとは、複数のフォームを使用していくつかの作業を行うオブジェクト指向プログラミングの機能です。メソッドの動作は、メソッドが呼び出されるタイプまたは状況によって異なります。

実際の例を見てみましょう。状況に応じて、人は複数の行動をとることができます。女性のように、母親、マネージャー、娘そしてこれが彼女の行動を定義します。これがポリモーフィズムの概念の由来です。

C ++プログラミング言語では、ポリモーフィズムは2つの方法で実現されます。それらは、演算子のオーバーロードと関数のオーバーロードです。

演算子のオーバーロード 演算子のオーバーロードでは、演算子はさまざまな使用例で複数の動作をする可能性があります。

関数のオーバーロード 条件に基づいて複数のタイプを実行できる同じ名前の関数。

継承 これは、他のクラスのプロパティまたは特性を継承または派生させるクラスの機能です。再利用性を可能にするため、つまり継承を使用して別のクラスで定義されたメソッドを使用できるため、これは非常に重要でオブジェクト指向のプログラムです。他のクラスからプロパティを派生させるクラスは子クラスまたはサブクラスと呼ばれ、プロパティの継承元のクラスは基本クラスまたは親クラスです。

Cプラスプラスプログラミング言語は、次のタイプの継承をサポートします

  • 単一継承
  • 多重継承
  • マルチレベルの継承
  • 階層継承
  • ハイブリッド継承

抽象化 データの抽象化またはデータの非表示は、データを非表示にし、関連するデータのみを最終ユーザーに表示するという概念です。これは、オブジェクト指向プログラミングの重要な部分でもあります。

概念をよりよく理解するために実際の例を見てみましょう。自転車に乗るとき、ブレーキを押すと自転車が停止し、スロットルを回すと加速することだけがわかりますが、それがどのように機能するかはわかりません。そのため、これは概念データの抽象化と同じ方法で行われます。

Cプラスプラスプログラミング言語では、データの抽象化を実現するための2つの方法を記述します-

  • クラスの使用
  • ヘッダーファイルの使用

  1. C++での基本的なグラフィックプログラミング

    C ++プログラミング言語は、用途の広いプログラミング言語です。 C ++を使用すると、ローエンドのグラフィックを作成することもできます。つまり、スタイリッシュなフォントで基本的な形や単語を作成し、それらに色を追加することは、c++を使用して行うことができます。 グラフィックプログラミングは、ターミナルまたはコマンドプロンプトを使用してC ++で実行できます。または、DevC++コンパイラをダウンロードしてグラフィックプログラムを作成することもできます。 ターミナルの場合は、graphics.hlibrarayをGCCコンパイラに追加する必要があります。このためには、次のコマンドを入力する

  2. Pythonのオブジェクト指向の概念を簡単に説明しますか?

    PythonでのOOPの概念 Pythonはオブジェクト指向プログラミング言語です。 Pythonでクラスとオブジェクトを簡単に作成して使用できます。 Pythonプログラミング言語の主なオブジェクト指向の概念を以下に示します- オブジェクト クラス 方法 継承 ポリモーフィズム データの抽象化 カプセル化 オブジェクト オブジェクトは、状態と動作を持つエンティティです。それは物理的および論理的かもしれません。例:マウス、キーボード、椅子、テーブル、ペンなど。 Pythonのすべてがオブジェクトであり、ほとんどすべてに属性とメソッドがあります。