본문 바로가기
프로그래밍 언어/C++

[C++] 다중 상속 (multiple inheritance)

by 까망 하르방 2025. 3. 4.
반응형

다중 상속 (multiple inheritance)

클래스 2개 이상의 기반 클래스 상속 하는 것

Java, C# 에서는 지원하지 않지만 C++에서는 다중 상속 지원

 

[예제] 다중상속

class InputFile
{
public:
    void read() {}
};

class OutputFile
{
public:
    void write() {}
};

// 다중 상속
class IOFile : public InputFile, public OutputFile
{
};

int main()
{
    IOFile file;

    file.write();
    file.read();
}

 

 

주의사항

• 서로 다른 기반 클래스에 동일 이름 멤버 있으면 충돌 주의
• Disamond 형태 상속

class InputFile
{
public:
    void read() {}
    void open() {}
};

class OutputFile
{
public:
    void write() {}
    void open() {}
};

class IOFile : public InputFile, public OutputFile
{
};

int main()
{
    IOFile file;
    
    // error (충돌)
    // file.open(); 

    file.InputFile::open();
}
반응형

'프로그래밍 언어 > C++' 카테고리의 다른 글

[C++] 가상함수 테이블  (3) 2025.03.06
[C++] 연산자 재정의 (Operator Overloading)  (2) 2025.03.05
[C++] dynamic_cast  (1) 2025.03.03
[C++] 인터페이스(Interface)  (5) 2025.03.02
[C++] object Slicing  (1) 2025.03.01

댓글