[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++에서 다양한 매개변수 유형을 처리하거나 다형성을 구현하는데 사용됩니다. 함수 오버로딩은 함수에 동일한 이름을 사용하면서 다른 매개변수 유형을 처리할 수 있게 하고, 대안 생성자는 동일한 클래스에 대안 생성자 여러 개를 정의하여 객체 초기화를 다양한 방법으로 처리할 수 있도록 합니다.
참고 문헌:
- https://www.geeksforgeeks.org/function-overloading-and-constructor-overloading-in-c/
- https://www.tutorialspoint.com/cplusplus/cpp_overloading.htm