코락 CoRock
코딩하는 락스타
코락 CoRock
  • 분류 전체보기 (393)
    • frameworks (19)
      • spring (19)
      • spring-boot (0)
      • testing (0)
    • languages (94)
      • java (39)
      • kotlin (0)
      • python (42)
      • r (13)
    • libraries (0)
    • programming (239)
      • android (13)
      • c (17)
      • cpp (22)
      • database (18)
      • design-pattern (4)
      • data-structures (11)
      • git (8)
      • hadoop (6)
      • html-css (7)
      • issue (4)
      • javascript (26)
      • jsp (34)
      • os (29)
      • php (6)
      • preferences (19)
      • etc (15)
    • discography (37)
      • k-pop (18)
      • pop (19)
    • blog (3)

블로그 메뉴

  • Programming
  • Java
  • JavaScript
  • Discography
  • K-Pop Songs
  • Pop Songs
  • Blog
  • Guestbook

공지사항

인기 글

태그

  • CentOS
  • Java
  • r
  • python
  • oracle
  • Android
  • 자바스크립트
  • Spring
  • jsp
  • javascript
  • 파이썬
  • linux

최근 댓글

최근 글

티스토리

반응형
hELLO · Designed By 정상우.
코락 CoRock

코딩하는 락스타

[C++] Dynamic Binding(동적 바인딩)
programming/cpp

[C++] Dynamic Binding(동적 바인딩)

2018. 3. 13. 09:39
반응형


(review)


상속 : 재사용성, 확장성(내가 가지고 없는 것을 만듦)

부모에게 값을 넘길 때 콜론 초기화로 넘겨준다


오버라이딩 : 부모와 자식 간에 똑같은 형태로 존재하는 것

동적 바인딩 : 부모가 자식을 접근하는 방식

접근 방식은 같은데 cpp에서 돌아가는 내부 구조가 다르다!





상속을 했을 때 개념 2개


정적 바인딩 : 내 거 만들면 내가 쓰는거야 ( 내거 가지고 접근하는 방식 )


동적 바인딩 : A 타입의 포인터로 B 객체에 접근하는 것


타입이 다르면 에러난다! But, 상속, 정확히 말해서 is-a 관계에서일때


is-a 관계에 있다는 건 하나의 흐름이라고 여겨지기 때문에 부모로 자식에게 접근할 수 있다!


왜 쓰나?

사용자 위주

접근하는 방식이 정적으로도 동적으로도 쓸 수 있어야 한다, But, 같은 서비스를 해줘야 한다!(제한적인 부분이 있긴 함)


다중 상속의 개념 : 여러 개를 받는 거야

다중 상속의 장점

동시에 여러개를 받을 수 있음

단점

데이터 관리가 쉽지 않다(데이터의 출처흐름을 파악하기 쉽지 않음)


그래서 덜 쓰는 게 좋다!

정리 : 단일 상속을 원칙으로 하되, 필요한 경우에만


항상 상속 방식을 명시해라! (default는 private다! ! !)


가상 상속을 하면 마치 다중 상속을 하는 것 처럼 ... 가 된다



* 가상 상속할 시 주의할 점

1. 상속 방식을 꼭 사용할 것! (실수 많이 하는 것)

-> default : private 상속!


2. 모호성이 발생하지 않게 끔 하는 게 중요하다 => 해결하기 위해 가상 상속으로 처리해줘야 한다

3. 값을 넘길 때(가상 상속을 했을 때)외부에서 콜론 초기화를 써야 되는데 메모리 구조에 맞게끔 넘겨야 한다!


cf. 자바에서는 이런 모호한 경우가 많다보니 아예 싹 없애버리고 public 상속 한개만 남겨뒀다!


그럼 자바는 다중 상속이 없나? (x) -> 인터페이스가 있다


인터페이스는 왜 다중 상속이 되냐?(복잡할 일이 없다!)

(옮길것)     추상화 : ex. 햄버거는 빵에 패티 상추 올리고 다시 빵으로 닫는다


반응형
저작자표시 비영리 변경금지 (새창열림)
    'programming/cpp' 카테고리의 다른 글
    • 동적 바인딩 3/14
    • 순수가상함수
    • [C++] 클래스 관계를 이용한 급여관리 프로그램
    • [C++] Class 간의 상속 연습문제
    코락 CoRock
    코락 CoRock
    A COder dreaming of being a ROCKstar

    티스토리툴바