ホームページ >バックエンド開発 >C++ >C++ でオブジェクト指向プログラミングをマスターする

C++ でオブジェクト指向プログラミングをマスターする

王林
王林オリジナル
2023-08-22 10:45:44685ブラウズ

C はオブジェクト指向プログラミング言語であり、オブジェクト指向プログラミングは複雑なシステムを抽象化する非常に効果的な方法です。オブジェクト指向プログラミング技術を使用すると、システム内の一部の概念とエンティティをクラスとオブジェクトに抽象化し、より簡単に管理できます。この記事では、この優れたプログラミング パラダイムを習得するのに役立つ、C オブジェクト指向プログラミングに関するいくつかの基本概念とテクニックを紹介します。

  1. クラスとオブジェクト

C では、クラスは、メンバー変数とメンバー関数のセットを含めることができるユーザー定義のデータ型です。メンバー変数はクラス内のデータであり、メンバー関数はこれらのデータに対する操作です。オブジェクトはこのクラスのインスタンスであり、クラスの特定の実装を表します。

たとえば、「車」を表すクラスを定義できます。

class Car {
public:
  int speed;
  int weight;
  void accelerate(int amount) {
    speed += amount;
  }
  void brake() {
    speed = 0;
  }
};

このクラスには 2 つのメンバー変数 (speedweight) があります。および 2 つのメンバー関数 (acceleratebrake)。このクラスを使用してオブジェクトを定義できます。

Car myCar;
myCar.speed = 60;
myCar.weight = 2000;
myCar.accelerate(20);

ここでは、Car クラスのインスタンスである myCar という名前のオブジェクトを定義します。オブジェクトを使用して、myCar.speedmyCar.accelerate(20) などのクラスのメンバー変数やメンバー関数にアクセスできます。

  1. 継承

継承は C オブジェクト指向プログラミングにおける重要な概念であり、既存のクラスから新しいクラスを派生できるようになります。派生クラスはサブクラスと呼ばれ、親クラスは基本クラスと呼ばれます。サブクラスは基本クラスのすべてのメンバ関数とメンバ変数を継承し、これに基づいて新しいメンバ関数とメンバ変数を追加できます。

たとえば、特別な車を表す新しいクラスを定義できます:

class SportsCar : public Car {
public:
  bool turbo;
};

このクラスは「SportsCar」と呼ばれ、基本クラス「Car」から派生します。このサブクラスは、speedweightacceleratebrake、および A を含む、基本クラスのすべてのメンバー変数とメンバー関数を継承します。新しいメンバー変数 turbo が追加されました。

これで、この新しいクラスを使用してオブジェクトを作成できます。

SportsCar mySportsCar;
mySportsCar.speed = 80;
mySportsCar.weight = 1700;
mySportsCar.accelerate(30);
mySportsCar.turbo = true;

ここでは、クラスの SportsCar インスタンスである mySportsCar という名前のオブジェクトを定義します。オブジェクトを使用して、Car クラスと SportsCar クラス (mySportsCar.speedmySportsCar など) のメンバー変数とメンバー関数にアクセスできます。加速(30)

  1. ポリモーフィズム

ポリモーフィズムは、C オブジェクト指向プログラミングの最後の概念であり、親クラスへのポインタを使用してサブクラスのオブジェクトを参照できるようになります。 。これは実行時ポリモーフィズムと呼ばれます。ポリモーフィズムにより、オブジェクトのタイプに基づいて呼び出す関数を選択できるため、プログラムの信頼性と柔軟性が向上します。

たとえば、Car オブジェクトへのポインターをパラメーターとして受け入れる関数を定義できます。

void drive(Car* car) {
  car->accelerate(10);
  cout << "Driving at " << car->speed << " mph." << endl;
}

この関数は drive と呼ばれます。 、Car オブジェクトへのポインターを受け入れます。関数内では、このポインターを使用して車の速度にアクセスし、加速関数を使用して車を加速します。

これで、この関数を使用して myCar オブジェクトと mySportsCar オブジェクトを駆動できるようになります:

drive(&myCar);
drive(&mySportsCar);

## に関係なく、それが確認できます。 # myCar または mySportsCar、どちらも速度が時速 16 マイル増加し、正しい情報が出力されます。これが実行時ポリモーフィズムの機能です。

概要

この記事では、クラスとオブジェクト、継承、ポリモーフィズムなど、C オブジェクト指向プログラミングの基本的な概念とテクニックをいくつか簡単に紹介します。これらの概念をマスターすると、C 言語をより深く理解し、そのオブジェクト指向プログラミング パラダイムを最大限に活用できるようになります。オブジェクト指向プログラミングについてさらに詳しく知りたい場合は、詳細情報を確認するか、関連するトレーニング コースに参加してください。

以上がC++ でオブジェクト指向プログラミングをマスターするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。