[C++] 왜 C++에는 Java의 super같은 키워드가 없을까? / 다중 상속

Date:     Updated:

카테고리:

태그:

이 글은 C++ 다중 상속을 공부하고 정리한 글입니다

왜 C++에는 Java의 super같은 키워드가 없을까?

  • 왜냐하면 C++은 다중(multiple) 상속이 가능하기 때문에
    • super같은 키워드를 쓴다면 어떤 부모 클래스에 접근해야하는지 모호하기 때문에

    다중(multiple) 상속

    • 2개 이상의 클래스를 상속 받는 경우
    • 다중 상속을 하면 메모리가 앞의 부모 클래스부터 생긴다 (A - > B -> AB)
      class AB : public A, public B
      {
        ...
      };
      AB ab = new AB();
      ab->A::Print();
      ab->B::Print();
      
    • 다이아몬드 문제가 생길 수 있다
      • 그걸 해결하기 위해 가상 베이스 클래스를 사용해야한다
      class A : virtual public Alphabet
      {
          ...
      };
      


참조

포큐아카데미 C++ 언매니지드 프로그래밍



💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우 
  언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸

맨 위로 이동하기

Cpp 카테고리 내 다른 글 보러가기

댓글 남기기