[C++] 왜 C++에는 Java의 super같은 키워드가 없을까? / 다중 상속
카테고리: Cpp
태그: Why
이 글은 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 { ... };
참조
💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸
댓글 남기기