티스토리 뷰
Project Settings(Alt + F7)에서 C/C++ 탭에서 Category → C++ Language를 누르고 Enable Run-Time Type Information(RTTI)를 체크하자.
그런 다음 dynamic cast를 사용하면 된다.
----------------------------------------------------------------------------------------
#include <iostream>
using namespace std;
enum TYPE {HORSE, PEGASUSE};
class Horse
{
private :
int itsAge;
public :
virtual void Gallop() {cout << "Galloping..." << endl;}
};
class Pegasus : public Horse
{
public :
virtual void Fly() {cout << "Fly! Fly!" << endl;}
};
const int NumberHorses = 5;
int main()
{
Horse * Ranch[NumberHorses];
Horse * pHorse;
int choice;
for(int i = 0; i < NumberHorses; i++)
{
cout << "(1)Horse (2)Pegasus : ";
cin >> choice;
if(choice == 2)
pHorse = new Pegasus;
else
pHorse = new Horse;
Ranch[i] = pHorse;
}
cout << endl;
for(i = 0; i < NumberHorses; i++)
{
Pegasus * pPeg = dynamic_cast<Pegasus *> (Ranch[i]);
/*
컴파일 하는 동안에 Ranch[i]가 가르키는 객체가 Pegasus라면 pPeg가 Ranch[i]가 될 것이고 그렇지 않으면 pPeg가 NULL이 될 것이다.
*/
if(pPeg)
pPeg->Fly();
else
cout << "Just a horse" << endl;
delete Ranch[i];
}
}
- Total
- Today
- Yesterday
- hp-ux
- oracle
- 리눅스
- 회식
- wow
- 실습으로 배우는 Unix System Admin (HPUX)
- World Of Warcraft
- 영화
- Japanimation
- 오픈 소스 SW와 전략적 활용
- 일기
- 책
- 실전! 업무에 바로 쓰는 SQL 튜닝
- 네트워크
- 박영창
- 삼성 소프트웨어 멤버십
- SSM
- 와우
- 프로그래밍
- 캐논
- HPUX
- 애니메이션
- 오라클
- 레포트
- 후기
- SQL 튜닝
- 시간표
- 모임
- 과제물
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |