C++ 함수 오버로딩 및 재작성의 실제 적용 사례
함수 오버로딩
함수 오버로딩을 사용하면 동일한 함수 이름을 사용하여 다른 유형이나 개수의 매개변수를 처리하는 다른 구현을 가질 수 있습니다. 예를 들어, 다양한 유형의 데이터를 인쇄하는 함수를 만들 수 있습니다.
void print(int value) { cout << value << endl; } void print(double value) { cout << value << endl; } int main() { int num = 10; double number = 12.5; print(num); // 调用 print(int) print(number); // 调用 print(double) return 0; }
함수 재정의
함수 재정의를 사용하면 파생 클래스에 정의된 함수가 동일한 이름과 매개변수 유형을 가진 기본 클래스의 함수와 다른 구현을 가질 수 있습니다. . 예를 들어, 면적 계산을 위한 함수를 정의하는 기본 클래스 Shape
가 있습니다. Shape
,其中定义了一个计算面积的函数:
class Shape { public: virtual double getArea() = 0; // 虚拟函数声明 };
子类 Rectangle
和 Circle
覆盖了 getArea
函数并提供了自己的实现:
class Rectangle: public Shape { public: double width, height; Rectangle(double width, double height) : width(width), height(height) {} double getArea() override { return width * height; } }; class Circle: public Shape { public: double radius; Circle(double radius) : radius(radius) {} double getArea() override { return 3.14 * radius * radius; } };
实战案例
考虑以下示例,它使用函数重载和函数重写来创建一个计算形状面积的程序:
#include <iostream> using namespace std; // 基类 Shape class Shape { public: virtual double getArea() = 0; }; // 子类 Rectangle class Rectangle: public Shape { public: double width, height; Rectangle(double width, double height) : width(width), height(height) {} double getArea() override { return width * height; } }; // 子类 Circle class Circle: public Shape { public: double radius; Circle(double radius) : radius(radius) {} double getArea() override { return 3.14 * radius * radius; } }; // 函数重载用来打印不同类型数据的面积 void printArea(Shape *shape) { cout << "Area of the Shape: " << shape->getArea() << endl; } int main() { Rectangle rectangle(5, 10); Circle circle(2); printArea(&rectangle); printArea(&circle); return 0; }
在这个案例中,Shape
类定义了一个虚拟的 getArea
函数,由子类 Rectangle
和 Circle
覆盖。printArea
函数使用函数重载来处理不同类型的 Shape
rrreee
Rectangle
및 Circle
는 를 재정의합니다. getArea 함수를 사용하고 자체 구현을 제공합니다. 🎜rrreee🎜🎜실용적인 예🎜🎜🎜함수 오버로딩과 함수 재작성을 사용하여 모양의 면적을 계산하는 프로그램을 만드는 다음 예를 고려하세요. 🎜rrreee 🎜이 경우 Shape
클래스는 하위 클래스 Rectangle
및 Circle에 의해 재정의되는 가상 <code>getArea
함수를 정의합니다. 코드>. printArea
함수는 함수 오버로드를 사용하여 다양한 유형의 Shape
개체를 처리하고 해당 영역을 인쇄합니다. 🎜위 내용은 C++ 함수 오버로딩 및 재작성 실제 적용 사례의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!