반응형
다중 상속 (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 |
댓글