[C++] C++ 프로그래밍 고급 5일차
오늘도 밥을 먹고... 교육오기 전에 회의를 하고와서인지 조금 정신이 없어서 아쉬웠습니다.
====================================== 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~