オーバーロードを使用すると、同じ名前の関数を定義してパフォーマンスを最適化でき、異なるパラメーターによって異なる実装がトリガーされます。抽象 Shape クラスはさまざまな形状 (長方形、円) に対して定義され、サブクラス Rectangle および Circle を使用して area() メソッドがオーバーロードされ、形状タイプを通じて正しい実装を自動的に呼び出して、冗長な計算を回避します。
#C 関数のオーバーロード: オーバーロードを使用してパフォーマンスを最適化する方法
#はじめに
オーバーロードとは、同じクラス内で同じ名前でパラメータが異なる複数の関数を定義することを指します。これにより、異なるパラメーターに基づいて異なる関数実装を呼び出すことができるため、プログラムのパフォーマンスが最適化されます。文法
returnType functionName(参数列表1); returnType functionName(参数列表2);
実践例
##目的:さまざまな形状の面積を計算する
実装:class Shape {
public:
virtual double area() = 0; // 抽象方法
};
class Rectangle : public Shape {
public:
Rectangle(double width, double height) : _width(width), _height(height) {}
virtual double area() override { return _width * _height; }
private:
double _width;
double _height;
};
class Circle : public Shape {
public:
Circle(double radius) : _radius(radius) {}
virtual double area() override { return M_PI * _radius * _radius; }
private:
double _radius;
};
int main() {
Shape* rectangle = new Rectangle(10, 5);
Shape* circle = new Circle(5);
cout << "Rectangle area: " << rectangle->area() << endl;
cout << "Circle area: " << circle->area() << endl;
delete rectangle;
delete circle;
return 0;
}
抽象クラス
Shape からさまざまな形状を継承することにより、オーバーロードを使用して、各形状に特定の area()
メソッドを定義できます。こうすることで、Shape::area()
が呼び出されるときに、実際の形状タイプに基づいて正しい実装が呼び出され、冗長な計算が回避されます。
以上がC++ 関数の継承の詳細な説明: 継承を使用してパフォーマンスを最適化する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。