[c++] 함수 오버로딩과 대안 생성자

C++에서 함수 오버로딩은 하나 이상의 함수가 동일한 이름을 가지고 있지만 서로 다른 매개변수를 갖도록 허용하는 기능입니다. 이를 통해 동일한 이름의 함수를 여러 버전으로 정의하여 다양한 매개변수 유형을 처리할 수 있습니다.

함수 오버로딩의 예시

#include <iostream>

void print(int num) {
    std::cout << "정수: " << num << std::endl;
}

void print(double num) {
    std::cout << "실수: " << num << std::endl;
}

int main() {
    print(5);
    print(3.14);
    return 0;
}

위 예제에서 print 함수는 정수와 실수를 매개변수로 받는 두 개의 오버로드된 버전을 가지고 있습니다.

대안 생성자

대안 생성자(Alternative Constructor)는 동일한 이름을 가진 생성자 여러 개를 가질 수 있는 C++의 기능입니다. 특정 클래스에 대안 생성자를 정의하면 다양한 매개변수 유형을 사용하여 객체를 초기화할 수 있습니다.

아래는 대안 생성자의 예시입니다.

#include <iostream>
using namespace std;

class Rectangle {
    int width, height;
  public:
    Rectangle() {
        width = 0;
        height = 0;
    }
    Rectangle(int w, int h) {
        width = w;
        height = h;
    }
    Rectangle(int s) {
        width = s;
        height = s;
    }
};

int main() {
    Rectangle r1;
    Rectangle r2(4, 5);
    Rectangle r3(3);
    
    return 0;
}

위 예제에서 Rectangle 클래스는 같은 이름을 가진 세 가지 대안 생성자를 갖고 있습니다.

함수 오버로딩과 대안 생성자는 C++에서 다형성을 구현하는 데 유용한 기능입니다.

요약

함수 오버로딩과 대안 생성자는 C++에서 다양한 매개변수 유형을 처리하거나 다형성을 구현하는데 사용됩니다. 함수 오버로딩은 함수에 동일한 이름을 사용하면서 다른 매개변수 유형을 처리할 수 있게 하고, 대안 생성자는 동일한 클래스에 대안 생성자 여러 개를 정의하여 객체 초기화를 다양한 방법으로 처리할 수 있도록 합니다.

참고 문헌: