학습동아리 9차시

정민경·2022년 12월 6일
0

2022_학습동아리

목록 보기
9/12
post-thumbnail

- 활동 일시

일시 : 2022.11.30 (수) 19:00 ~ 21:00 (총 2시간)

- 오늘의 계획

  • 객체지향설계 공부
    - Dynamic Dispatch

- 오늘의 활동

  • Function Overriding : 부모 class에 있는 함수를 자식 class에서 재정의
    1) static dispatch : compile time에 결정
    - static cast - 만들어진 객체의 type으로 casting
    - dynamic cast - RTTI type으로 casting

    2) dynamic dispatch : runtime에 결정
    - virtual keyword : dynamic dispatch가 되도록 해주는 keyword
    - [virtual keyword의 특징]

    • 부모 class에서 virtual keyword로 함수가 선언(정의)되어있다면 상속받은 자식 class에서도 virtual임.
    • VPTR과 VTABLE 방식으로 작동됨.
  • VPTR과 VTABLE
    - VPTR은 각각의 객체마다 존재
    - VTABLE은 각각의 class마다 존재

    • 객체가 생성될 때 vptr 같이 생성 (위 그림의 왼쪽)
    • class가 생성될 때 vtable 같이 생성 (위 그림의 오른쪽)
    • 객체가 class의 function을 호출 시 vptr이 vtable의 function 호출

      ex) obj1 : employee / class2[0] function : GetInfo()
      employee* employee1 = new Employee("Kim", 26, "EE");
      employee1->GetInfo();
      // employee1->vptr[0]|();


- 활동 소감

이제 점점 기말고사 기간이 다가온다. 학습동아리 조원들과도 자주 만나려고 하지만 다들 일정이 많이 생겨 정말 만나기 힘든 것 같다. 그래도 시간될때 만나서 같이 공부하고, 서로 질의응답도 하며 공부하니 도움이 많이 되는 것 같다.

0개의 댓글