[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++의 강력한 기능 중 하나로, 코드 작성 시에 편의성과 안전성을 높여줍니다.

참고 자료