C はオブジェクト指向プログラミング言語であり、オブジェクト指向プログラミングは複雑なシステムを抽象化する非常に効果的な方法です。オブジェクト指向プログラミング技術を使用すると、システム内の一部の概念とエンティティをクラスとオブジェクトに抽象化し、より簡単に管理できます。この記事では、この優れたプログラミング パラダイムを習得するのに役立つ、C オブジェクト指向プログラミングに関するいくつかの基本概念とテクニックを紹介します。
C では、クラスは、メンバー変数とメンバー関数のセットを含めることができるユーザー定義のデータ型です。メンバー変数はクラス内のデータであり、メンバー関数はこれらのデータに対する操作です。オブジェクトはこのクラスのインスタンスであり、クラスの特定の実装を表します。
たとえば、「車」を表すクラスを定義できます。
class Car { public: int speed; int weight; void accelerate(int amount) { speed += amount; } void brake() { speed = 0; } };
このクラスには 2 つのメンバー変数 (speed
と weight
) があります。および 2 つのメンバー関数 (accelerate
と brake
)。このクラスを使用してオブジェクトを定義できます。
Car myCar; myCar.speed = 60; myCar.weight = 2000; myCar.accelerate(20);
ここでは、Car
クラスのインスタンスである myCar
という名前のオブジェクトを定義します。オブジェクトを使用して、myCar.speed
や myCar.accelerate(20)
などのクラスのメンバー変数やメンバー関数にアクセスできます。
継承は C オブジェクト指向プログラミングにおける重要な概念であり、既存のクラスから新しいクラスを派生できるようになります。派生クラスはサブクラスと呼ばれ、親クラスは基本クラスと呼ばれます。サブクラスは基本クラスのすべてのメンバ関数とメンバ変数を継承し、これに基づいて新しいメンバ関数とメンバ変数を追加できます。
たとえば、特別な車を表す新しいクラスを定義できます:
class SportsCar : public Car { public: bool turbo; };
このクラスは「SportsCar」と呼ばれ、基本クラス「Car」から派生します。このサブクラスは、speed
、weight
、accelerate
、brake
、および A を含む、基本クラスのすべてのメンバー変数とメンバー関数を継承します。新しいメンバー変数 turbo
が追加されました。
これで、この新しいクラスを使用してオブジェクトを作成できます。
SportsCar mySportsCar; mySportsCar.speed = 80; mySportsCar.weight = 1700; mySportsCar.accelerate(30); mySportsCar.turbo = true;
ここでは、クラスの SportsCar
インスタンスである mySportsCar
という名前のオブジェクトを定義します。オブジェクトを使用して、Car
クラスと SportsCar
クラス (mySportsCar.speed
や mySportsCar など) のメンバー変数とメンバー関数にアクセスできます。加速(30)
。
ポリモーフィズムは、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++ でオブジェクト指向プログラミングをマスターするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。