의견.png

"다중상속"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
39번째 줄: 39번째 줄:
 
클래스 C에서 A와 B 클래스를 상속 받았다. 이 때 두 개 이상의 클래스를 동시에 상속받은 C는 다중 상속을 받았다고 하며 클래스A와 클래스B가 가지고 있는 속성들을 사용할 수 있다.
 
클래스 C에서 A와 B 클래스를 상속 받았다. 이 때 두 개 이상의 클래스를 동시에 상속받은 C는 다중 상속을 받았다고 하며 클래스A와 클래스B가 가지고 있는 속성들을 사용할 수 있다.
  
이 때 클래스A의 sampleA 함수와 클래스B의 sampleB 함수가 sample이라는 함수로 정의되어 있을 때 클래스 C에서 함수를 사용할 때 아래와 같이 작성이 되어 모호성이 발생한다.
+
이 때 클래스A의 sampleA 함수와 클래스B의 sampleB 함수가 sample이라는 함수로 정의되어 있을 때 클래스 C에서 함수를 사용할 때 아래와 같이 작성이 되어 모호성이 발생한다.<ref name="자료2"> Pac, 〈[https://pacs.tistory.com/entry/C-%EC%83%81%EC%86%8D%EC%9D%98-%EB%A7%88%EC%A7%80%EB%A7%89-%EB%8B%A4%EC%A4%91-%EC%83%81%EC%86%8DMultiple-Inheritance 상속의 마지막, 다중 상속(Multiple Inheritance)]〉, 《개인블로그》, 2010-09-17</ref>
  
 
  class C : public A, public B{
 
  class C : public A, public B{
52번째 줄: 52번째 줄:
  
 
{{각주}}
 
{{각주}}
 +
 +
==참고 자료==
 +
* 힘껏 날아 오르자!, 〈[http://blog.daum.net/dsmcj/37 다중상속과 단일상속의 장단점]〉, 《개인블로그》, 2009-03-11
 +
* Pac, 〈[https://pacs.tistory.com/entry/C-%EC%83%81%EC%86%8D%EC%9D%98-%EB%A7%88%EC%A7%80%EB%A7%89-%EB%8B%A4%EC%A4%91-%EC%83%81%EC%86%8DMultiple-Inheritance 상속의 마지막, 다중 상속(Multiple Inheritance)]〉, 《개인블로그》, 2010-09-17
  
 
== 같이 보기 ==
 
== 같이 보기 ==

2020년 8월 31일 (월) 16:11 판

다중상속(multiple inheritance)은 객체 지향 프로그래밍에서 한 클래스가 한 번에 두 개 이상의 클래스를 상속받는 경우를 말한다. 다중상속을 받은 클래스의 경우 두 개 이상의 부모 클래스를 가지게 된다.

개 요

다중상속(Multiple inheritance)이란 객체 지향 프로그래밍의 특징 중 하나이며, 어떤 클래스가 하나 이상의 상위 클래스로부터 여러 가지 행동이나 특징을 상속받을 수 있는 것을 말한다. 다중상속을 허용하면 여러 클래스로부터 상속 받을 수 있기 때문에 복합적인 기능을 가진 클래스를 쉽게 작성할 수 있지만 프로그래밍을 복잡하게 만들 수 있기 때문에 실용성이 떨어진다.[1]

특 징

C++

단일 상속과는 다르게 두 개 이상의 클래스를 하나가 동시에 상속받는 것으로 클래스를 선언할 때 클래스명 옆 : 연산자 뒤에 여러 개의 클래스를 콤마(,)로 나열한다.

class A{
   public:
       void sampleA(){
           cout<<"A : example"<<endl;
       }
};

class B{
   public:
       void sampleB(){
           cout<<"B : example"<<endl;
       }
};

class C : public A, public B{
   public:
       void sampleC(){
            sampleA();
            sampleB();
       }
};

int main(){
      C exampleC;
      exampleC.sampleC();
      
      return 0;
}

클래스 C에서 A와 B 클래스를 상속 받았다. 이 때 두 개 이상의 클래스를 동시에 상속받은 C는 다중 상속을 받았다고 하며 클래스A와 클래스B가 가지고 있는 속성들을 사용할 수 있다.

이 때 클래스A의 sampleA 함수와 클래스B의 sampleB 함수가 sample이라는 함수로 정의되어 있을 때 클래스 C에서 함수를 사용할 때 아래와 같이 작성이 되어 모호성이 발생한다.[2]

class C : public A, public B{
   public:
       void sampleC(){
            sample(); //A클래스의 sample
            sample(); //B클래스의 sample
       }
};


각주

  1. 힘껏 날아 오르자!, 〈다중상속과 단일상속의 장단점〉, 《개인블로그》, 2009-03-11
  2. Pac, 〈상속의 마지막, 다중 상속(Multiple Inheritance)〉, 《개인블로그》, 2010-09-17

참고 자료

같이 보기


  의견.png 이 다중상속 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.