ホームページ  >  記事  >  バックエンド開発  >  C++ メンバー関数の継承規則

C++ メンバー関数の継承規則

WBOY
WBOYオリジナル
2024-04-18 14:45:011140ブラウズ

C メンバー関数の継承規則: パブリック継承: 派生クラスが基本クラスのメンバー関数をパブリックに継承する場合、派生クラスのメンバー関数もパブリックになります。保護された継承: 派生クラスが基本クラスのメンバー関数を保護および継承する場合、派生クラスのメンバー関数は保護されます。プライベート継承: 派生クラスは基本クラスのメンバー関数をプライベートに継承します。派生クラスのメンバー関数はプライベートであり、派生クラス自体から直接アクセスすることはできません。

C++ 成员函数的继承规则

#C メンバー関数の継承ルール

C オブジェクト指向プログラミングでは、クラスは継承を通じて基本クラスから継承できます。データ メンバーとメンバー関数。メンバー関数の継承については、次の規則に従います。

  • パブリック継承: 派生クラスが基本クラスのメンバー関数をパブリックに継承する場合、そのクラスのメンバー関数は派生クラスもパブリックです。
  • 保護された継承: 派生クラスが基本クラスのメンバー関数を保護および継承すると、派生クラスのメンバー関数も保護されます。
  • プライベート継承: 派生クラスは基本クラスのメンバー関数をプライベートに継承します。その場合、派生クラスのメンバー関数はプライベートとなり、派生クラス自体から直接アクセスすることはできません。

実践的な例:

次の例を考えてみましょう:

class Shape {
public:
    virtual double getArea();  // 抽象函数
};

class Rectangle : public Shape {
public:
    Rectangle(double length, double width);
    double getArea() override;  // 重写父类的 getArea 函数
private:
    double length;
    double width;
};

class Square : protected Shape {
public:
    Square(double side);
    double getArea() override;
private:
    double side;
};

class Circle : private Shape {
public:
    Circle(double radius);
    double getArea() override;
private:
    double radius;
};

この例では:

  • Rectangle クラスは Shape クラスをパブリックに継承するため、getArea 関数も Rectangle クラスでパブリックになります。
  • Square クラス保護は Shape クラスを継承するため、getArea 関数も Square クラスで保護されます。
  • Circle クラスは Shape クラスからプライベートに継承するため、getArea 関数は Circle クラスでプライベートになります。 。

注:

    抽象関数は派生クラスでオーバーライドする必要があります。
  • 派生クラスのメンバー関数は、基本クラスの保護されたデータ メンバーとプライベート データ メンバーにアクセスできますが、呼び出すことができるのは、基本クラスのパブリック メンバー関数と保護されたメンバー関数のみです。
  • 派生クラスのコンストラクターとデストラクターは、基本クラスから継承されません。

以上がC++ メンバー関数の継承規則の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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