> 백엔드 개발 > C++ > C++ 함수의 오버로딩 사용 분석

C++ 함수의 오버로딩 사용 분석

WBOY
풀어 주다: 2024-04-18 18:21:01
원래의
776명이 탐색했습니다.

함수 오버로딩을 사용하면 동일한 이름을 사용하는 다양한 매개변수 목록으로 함수를 생성할 수 있어 코드 유연성이 향상됩니다. 규칙에는 다음이 포함됩니다. 함수 이름은 동일하고 매개변수 목록은 다르며 유형이나 번호가 다를 수 있습니다. 예를 들어 면적을 계산하는 클래스에는 다양한 모양에 대한 오버로드된 함수가 포함되어 있으며 해당 함수를 호출하여 모양 유형에 따라 면적을 계산할 수 있습니다.

C++ 函数的重载用法解析

C++ 함수 오버로딩 사용 분석

함수 오버로딩이란?

함수 오버로드를 사용하면 동일한 이름을 사용하는 다양한 매개변수 목록이 있는 여러 함수를 생성할 수 있습니다. 이는 코드를 더욱 유연하고 재사용 가능하게 만듭니다.

오버로드된 함수의 구문

returnType functionName(parameterList1);
returnType functionName(parameterList2);
...
returnType functionName(parameterListN);
로그인 후 복사

여기서:

  • returnType은 함수의 반환 유형입니다. returnType 是函数的返回类型。
  • functionName 是函数的名称。
  • parameterList
  • functionName은 함수의 이름입니다.

parameterList는 함수의 매개변수 목록입니다.

    함수 오버로드 규칙
  • 같은 이름을 가진 함수.
  • 파라미터 목록이 다릅니다.

매개변수 목록의 매개변수 유형이나 번호가 다릅니다.

실용 사례

다양한 모양에 대한 특수 함수를 사용하여 면적을 계산하는 클래스가 있다고 가정해 보겠습니다.

class Shape {
public:
  virtual double area() const = 0;
};

class Rectangle : public Shape {
public:
  Rectangle(double width, double height): width(width), height(height) {}
  double area() const override {
    return width * height;
  }
private:
  double width, height;
};

class Circle : public Shape {
public:
  Circle(double radius): radius(radius) {}
  double area() const override {
    return M_PI * radius * radius;
  }
private:
  double radius;
};
로그인 후 복사

모양의 면적을 계산하려면 해당 유형에 따라 해당 오버로드된 함수를 호출할 수 있습니다.

int main() {
  Shape* shapes[] = { new Rectangle(2.0, 3.0), new Circle(1.0) };
  for (int i = 0; i < 2; i++) {
    std::cout << "Area of shape " << i << ": " << shapes[i]->area() << std::endl;
  }
  return 0;
}
로그인 후 복사
출력:
Area of shape 0: 6
Area of shape 1: 3.14159
로그인 후 복사
    참고:
  • 오버로드된 함수의 순서는 함수 호출 결과에 영향을 주지 않습니다.
  • 오버로드된 함수는 다양한 액세스 제어 수준(예: 공개, 비공개)을 가질 수 있습니다.
🎜오버로드된 함수는 다른 기본 매개변수 값을 가질 수 있습니다. 🎜🎜

위 내용은 C++ 함수의 오버로딩 사용 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿