[c++] 역할 모델

C++에서는 역할 모델을 통해 객체 지향 프로그래밍을 지원합니다. 역할 모델은 객체가 역할을 수행하는 데 사용될 수 있는 다른 객체와의 관계를 정의합니다.

역할 모델 이해

역할 모델에서 역할은 인터페이스를 의미하며, 클래스가 이러한 역할을 수행할 수 있습니다. 이것은 클래스가 다양한 역할을 수행하도록 유연성을 제공합니다.

다중 상속을 사용하여 클래스가 여러 역할을 수행할 수 있습니다. 만약 특정 클래스가 여러 역할을 수행하는데 필요한 데이터나 메서드가 다른 클래스에 중복해서 나타난다면, 역할 충돌이 발생합니다.

예제

#include <iostream>

// 역할 A
class RoleA {
public:
    virtual void performTask() {
        std::cout << "Role A task performed" << std::endl;
    }
};

// 역할 B
class RoleB {
public:
    virtual void performTask() {
        std::cout << "Role B task performed" << std::endl;
    }
};

// 클래스
class MyClass : public RoleA, public RoleB {
public:
    void performTask() override {
        RoleA::performTask();
        RoleB::performTask();
    }
};

int main() {
    MyClass obj;
    obj.performTask();
    return 0;
}

위의 예제에서는 MyClassRoleARoleB 두 가지 역할을 수행합니다.

C++에서 역할 모델을 사용하면 객체 지향 프로그래밍에서 유연하고 재사용 가능한 코드를 작성할 수 있습니다.

참고 자료