[c++] 구조체와 클래스의 멤버 함수의 오버로딩

C++에서는 구조체(struct)와 클래스(class)를 사용하여 데이터를 구조화하고 캡슐화할 수 있습니다.

구조체(struct)의 멤버 함수 오버로딩

구조체의 멤버 함수를 오버로딩하려면 C++11 표준 이전에는 멤버 함수를 정의할 수 없었습니다. 그러나 C++11 표준 이후로 구조체에도 멤버 함수를 정의할 수 있게 되었습니다. 구조체의 멤버 함수 오버로딩은 다음과 같이 작성할 수 있습니다.

struct MyStruct {
    void display() {
        // 구조체 멤버 함수 구현
    }

    void display(int x) {
        // 오버로딩된 멤버 함수 구현
    }
};

int main() {
    MyStruct obj;
    obj.display();  // display() 호출
    obj.display(10); // display(int) 호출
    return 0;
}

클래스(class)의 멤버 함수 오버로딩

클래스의 멤버 함수 오버로딩은 다른 매개변수를 갖는 동일한 이름의 멤버 함수를 정의하는 것을 말합니다. 아래는 클래스의 멤버 함수 오버로딩의 예시입니다.

class MyClass {
public:
    void display() {
        // 클래스 멤버 함수 구현
    }

    void display(int x) {
        // 오버로딩된 멤버 함수 구현
    }
};

int main() {
    MyClass obj;
    obj.display();  // display() 호출
    obj.display(10); // display(int) 호출
    return 0;
}

C++에서는 구조체클래스의 멤버 함수 오버로딩이 가능하며, 이를 통해 하나의 이름으로 여러 가지 기능을 구현할 수 있습니다.

내용이 최근 방식으로 업데이트되었으며 해당 내용이 적용되는 C++11 표준 이후에 대해 설명했습니다.

참고 자료