답변: C++의 함수 오버로딩과 함수 가상 함수를 사용하면 개발자는 이름은 같지만 매개변수 목록이나 동작이 다른 함수를 만들 수 있습니다. 자세한 설명: 함수 오버로딩: 이름은 같지만 매개변수 목록이 다른 함수를 만들어 다양한 상황에서 유사한 기능을 가진 함수를 사용합니다. 함수 가상 함수: 다형성에 사용되는 파생 클래스에서 기본 클래스의 함수를 재정의하여 파생 클래스가 기본 클래스와 다른 구현을 제공할 수 있도록 합니다.
C++의 함수 오버로딩 및 함수 가상 함수
함수 오버로딩
함수 오버로딩을 사용하면 이름은 같지만 매개변수 목록이 다른 여러 함수를 만들 수 있습니다. 이는 다양한 상황에서 유사한 기능을 가진 기능을 사용해야 하는 경우 유용합니다.
구문:
ret_type function_name(parameter_list_1); ret_type function_name(parameter_list_2); ...
예:
void printInfo(int x) { cout << "int: " << x << endl; } void printInfo(double x) { cout << "double: " << x << endl; } int main() { int a = 10; double b = 3.14; printInfo(a); // calls printInfo(int) printInfo(b); // calls printInfo(double) return 0; }
함수 가상 함수
함수 가상 함수를 사용하면 파생 클래스에서 기본 클래스의 함수를 재정의할 수 있습니다. 이는 파생 클래스에 기본 클래스와 다른 구현을 제공할 수 있으므로 다형성 및 객체 지향 프로그래밍에 유용합니다.
구문:
기본 클래스에서 함수를 선언할 때 virtual
키워드를 사용하세요. virtual
。
virtual ret_type function_name(parameter_list) const = 0;
在派生类中重写函数时使用关键字 override
。
override ret_type function_name(parameter_list) const { /* implementation */ }
示例:
class Shape { public: virtual double area() const = 0; // pure virtual function }; class Circle : public Shape { public: double radius; Circle(double radius) : radius(radius) {} override double area() const { return 3.14 * radius * radius; } }; class Square : public Shape { public: double side; Square(double side) : side(side) {} override double area() const { return side * side; } }; int main() { Shape* s1 = new Circle(5); Shape* s2 = new Square(10); cout << "Area of circle: " << s1->area() << endl; cout << "Area of square: " << s2->area() << endl; return 0; }
注意事项:
virtual
的函数。virtual
和 = 0
virtual ret_type function_name(parameter_list) const = 0;
override
키워드를 사용하세요. 🎜🎜override ret_type function_name(parameter_list) const { /* 구현 */ }
🎜🎜🎜예: 🎜🎜rrreee🎜🎜참고: 🎜🎜virtual
로 선언된 함수에만 적용됩니다. 🎜virtual
및 = 0
로 선언됨)는 파생 클래스에서 재정의되어야 합니다. 그렇지 않으면 파생 클래스는 추상 클래스가 됩니다. . 🎜🎜위 내용은 C++ 함수 오버로딩 및 함수 가상 함수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!