重載允許定義同名函數以最佳化效能,不同參數觸發不同實作。為不同形狀(矩形、圓形)定義了一個抽象 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中文網其他相關文章!