강의노트

[C++] C++ 프로그래밍 고급 5일차

GS_Park 2016. 4. 1. 20:29

오늘도 밥을 먹고... 교육오기 전에 회의를 하고와서인지 조금 정신이 없어서 아쉬웠습니다.

 

======================================    1    =======================================

(19:04 ~ 19:54)

 

 

어제 과제처럼 던져주신 주소록 프로그램을 작성해 보았습니다.

 

정적 호출과 동적 호출 및 기타 다른 것들에 대해 설명을 해 준다고 하셨습니다.

 

OOP의 꽃은 다형성이다라고 하셨습니다. 함수 재정의가 그중에서도 가장 중요한 방법이라고 하셨습니다.

 

 

======================================    2    =======================================

(20:02 ~ 20:52)

 

f2.cpp ~ f4.cpp 에 대한 코드설명을 진행 해 주셨습니다.

가상함수는 수행시간에 동적으로 호출하는 방식으로 동작합니다.

 

virtual 키워드를 이용하면 다형성을 구현하기 좋습니다.

 

게임을 구현하는 예를 드시더니 포켓몬스터 3마리를 가지고 하는 게임들 완성해보라는 과제를 내 주셨습니다.    

 

 

======================================    3    =======================================

(21:02 ~ 21:34)

 

다운케스팅?!

하위 클레스가 무엇인지 모를 경우, 즉 , 실제 생성된 객체 타입을 확인해야 합니다.

typeid()를 활용하면 알 수 있으며 이 함수를 사용하기 위해서는 typeinfo를 include해주어야 합니다.

 

#include<typeinfo>

 

if(typeid(*character) == typeid(Picachu)){
        ((Picachu *)character)->electro();
      }

 

위의 코드와 같이 검사를 하면 상위 클레스인 character가 뭔지 확인하고 피카츄면 전기공격하는 그런 느낌입니다.

 

test3.cpp

상위 클레스의 소멸자를 Virtual로 하면 하위에서 메모리 해제가 정상적으로 되지 않는 경우를 막을 수 있습니다.

 

오늘은 일찍 마쳐 수료증을 받고 갑니다!!!! 빠2~