[c++] 함수 오버로딩과 열거형 클래스
이번에는 C++에서 함수 오버로딩과 열거형 클래스에 대해 알아보겠습니다.
함수 오버로딩 (Function Overloading)
함수 오버로딩은 동일한 이름의 함수를 여러 개 정의하는 것을 말합니다. 이때 함수의 매개변수의 타입, 개수, 순서가 서로 달라야 합니다. 즉, 컴파일러가 함수 호출 시에 매개변수의 타입, 개수, 순서를 통해 호출할 함수를 결정합니다.
다음은 함수 오버로딩의 예제입니다.
#include <iostream>
using namespace std;
void print(int num) {
cout << "정수: " << num << endl;
}
void print(double num) {
cout << "실수: " << num << endl;
}
int main() {
print(10); // print(int) 호출
print(3.14); // print(double) 호출
return 0;
}
위 코드에서 print
함수는 정수와 실수를 각각 출력하는 함수로 오버로딩되었습니다.
열거형 클래스 (Enum Class)
C++11부터는 열거형 클래스(Enum Class)라는 새로운 형태의 열거형이 도입되었습니다. 열거형 클래스는 열거형 변수의 범위를 한정할 수 있어서 기존의 열거형과 달리 이름공간 충돌을 방지하고 안전한 코드를 작성할 수 있습니다.
다음은 열거형 클래스의 예제입니다.
#include <iostream>
using namespace std;
enum class Color { RED, GREEN, BLUE };
int main() {
Color color = Color::RED;
if (color == Color::RED) {
cout << "빨간색" << endl;
}
return 0;
}
위 코드에서 Color
열거형 클래스를 정의하고, Color::RED
와 같이 열거형 값을 사용하는 예제입니다.
함수 오버로딩과 열거형 클래스는 C++의 강력한 기능 중 하나로, 코드 작성 시에 편의성과 안전성을 높여줍니다.