ホームページ >バックエンド開発 >C++ >C++ 関数の継承の詳細な説明: 抽象基本クラスを定義して使用するには?

C++ 関数の継承の詳細な説明: 抽象基本クラスを定義して使用するには?

WBOY
WBOYオリジナル
2024-05-03 13:21:021070ブラウズ

関数の継承により、派生クラスが基本クラスの関数定義を再利用できるようになります。これは次の手順で実現されます。 純粋な仮想関数を含む抽象基本クラスを定義します。派生クラスで override キーワードを使用して、基本クラスの関数を継承して実装します。実際のケース: 抽象基本クラス Shape を作成し、派生クラス Circle および Rectangle を作成して、さまざまな形状の面積を計算します。

C++ 函数继承详解:如何定义和使用抽象基类?

#C 関数継承の詳細な説明: 抽象基本クラスの定義と使用

関数継承とは何ですか?

関数の継承は、派生クラスが基本クラスの関数定義を継承できるようにする C の機能であり、それによって基本クラスの機能をサブクラスで再利用できます。

抽象基本クラスの定義

抽象基本クラスは、インスタンス化を目的としたものではなく、他のクラスの基本クラスとしてのみ機能する基本クラスです。これには、派生クラスでオーバーライドする必要がある純粋な仮想関数 (つまり、関数本体のない関数) が含まれています。抽象基本クラスを宣言するには、

virtual および = 0 を使用します。例:

class Shape {
public:
    virtual double area() const = 0;
};

派生クラスでの関数の継承

派生クラスは、

override キーワードを使用し、関数の実装を提供することで、抽象基本クラスの関数定義を継承できます。例:

class Circle : public Shape {
public:
    override double area() const {
        return M_PI * radius * radius;
    }
private:
    double radius;
};

実際のケース: 形状面積の計算

実際的なデモンストレーションの例として、形状面積の計算を取り上げます。 Shape 抽象基本クラスを作成し、Circle と Rectangle の派生クラスを作成して、円と長方形の面積を計算します:

#include <iostream>
#include <cmath>

using namespace std;

class Shape {
public:
    virtual double area() const = 0;
};

class Circle : public Shape {
public:
    Circle(double radius) : radius(radius) {}
    override double area() const {
        return M_PI * radius * radius;
    }
private:
    double radius;
};

class Rectangle : public Shape {
public:
    Rectangle(double width, double height) : width(width), height(height) {}
    override double area() const {
        return width * height;
    }
private:
    double width;
    double height;
};

int main() {
    Circle circle(5);
    cout << "Circle area: " << circle.area() << endl;

    Rectangle rectangle(3, 4);
    cout << "Rectangle area: " << rectangle.area() << endl;

    return 0;
}

実行出力:

Circle area: 78.5398
Rectangle area: 12

以上がC++ 関数の継承の詳細な説明: 抽象基本クラスを定義して使用するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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