ツールのタグ
C++の継承
オブジェクト指向プログラミングで最も重要な概念の 1 つは継承です。継承を使用すると、別のクラスに基づいてクラスを定義できるため、アプリケーションの作成と保守が容易になります。これにより、コード関数の再利用と実行時間の向上という効果も得られます。
クラスを作成するときに、新しいデータ メンバーやメンバー関数を書き直す必要はありません。新しいクラスが既存のクラスのメンバーを継承することを指定するだけで済みます。この既存のクラスは基本クラスと呼ばれ、新しいクラスは派生クラスと呼ばれます。
継承は が 関係であることを表します。たとえば、哺乳類は動物であり、犬も哺乳類であり、したがって犬も動物である、というようになります。
基本クラスと派生クラス
クラスは複数のクラスから派生できます。つまり、複数の基本クラスからデータと関数を継承できます。派生クラスを定義するには、クラス派生リストを使用して基本クラスを指定します。クラス派生リストは 1 つ以上の基本クラスにちなんで名付けられ、次の形式になります:
class derived-class: access-specifier base-class
ここで、アクセス修飾子 access-specifier は public、protected、または private のいずれかであり、base-class は以前に定義されたクラスの名前。 access-specifier が使用されない場合、デフォルトは private です。
基底クラス Shape があり、以下に示すように Rectangle がその派生クラスであるとします。
#include <iostream>
using namespace std;
// 基类
class Shape
{
public:
void setWidth(int w)
{
width = w;
}
void setHeight(int h)
{
height = h;
}
protected:
int width;
int height;
};
// 派生类
class Rectangle: public Shape
{
public:
int getArea()
{
return (width * height);
}
};
int main(void)
{
Rectangle Rect;
Rect.setWidth(5);
Rect.setHeight(7);
// 输出对象的面积
cout << "Total area: " << Rect.getArea() << endl;
return 0;
}上記のコードがコンパイルされて実行されると、次の結果が生成されます:
Total area: 35
アクセス制御と継承
派生クラスは、基本クラス内のすべての非プライベート メンバーにアクセスできます。したがって、基底クラスのメンバーが派生クラスのメンバー関数からアクセスされることを望まない場合は、基底クラスでプライベートと宣言する必要があります。
アクセス権限に基づいて、さまざまなアクセス タイプを次のように要約できます。
| はい | はい | いいえ | |
|---|---|---|---|
| はい | いいえ | いいえ | |












![PHP 実践開発入門: PHP クイック作成 [中小企業フォーラム]](https://img.php.cn/upload/course/000/000/035/5d27fb58823dc974.jpg)









