함수 오버로딩을 사용하면 동일한 범위에서 동일한 이름을 가진 함수를 정의할 수 있지만 다른 매개변수 목록이 필요한 반면, 함수 재정의를 사용하면 파생 클래스의 기본 클래스와 동일한 이름 및 매개변수 목록을 가진 함수를 정의할 수 있습니다. override 키워드, 반환 유형 및 매개변수 목록이 필요하며 기본 클래스 함수와 정확히 동일합니다. 오버로드 예: print(int), print(double); 덮어쓰기 예: Derived 클래스의 foo()는 Base 클래스의 foo()를 재정의합니다.
함수 오버로딩 및 재작성을 위한 C++ 언어 표준 사양
함수 오버로딩
오버로딩을 사용하면 동일한 범위에서 동일한 이름으로 여러 함수를 정의할 수 있지만 해당 매개변수 목록은 달라야 합니다. C++ 언어 표준에서는 다음 사양을 따르기 위해 함수 오버로드가 필요합니다.
예:
void print(int x); void print(double x);
Function overriding
Overriding을 사용하면 기본 클래스와 동일한 이름 및 매개변수 목록을 사용하여 파생 클래스에서 함수를 정의할 수 있습니다. C++ 언어 표준에서는 다음 사양을 따르도록 함수 재작성을 요구합니다.
예:
class Base { public: virtual void foo(); }; class Derived : public Base { public: override void foo() override; // 重写基类中的 foo };
실제 사례
함수 오버로딩:
#include <iostream> using namespace std; void print(int x) { cout << "int: " << x << endl; } void print(double x) { cout << "double: " << x << endl; } int main() { print(10); // 调用 int 版本的 print print(3.14); // 调用 double 版本的 print return 0; }
함수 재작성:
#include <iostream> using namespace std; class Shape { public: virtual void draw() = 0; // 纯虚函数 }; class Rectangle : public Shape { public: void draw() override { cout << "Drawing a rectangle" << endl; } }; int main() { Rectangle r; r.draw(); // 调用 Rectangle 类中的重写函数 return 0; }
위 내용은 함수 오버로딩 및 재작성을 위한 C++ 언어 표준 사양의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!