티스토리 뷰
Example 1
public:
virtual void fct(){
cout << "AAA" << endl;
}
};
class BBB:public AAA{
public:
void fct(){ // virtual
AAA::fct();
cout << "BBB" << endl;
}
};
class CCC:public BBB{
public:
void fct(){
BBB::fct();
cout << "CCC" << endl;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
CCC *c = new CCC;
BBB *b = c;
AAA *a = b;
a->fct();
b->fct();
c->fct();
return 0;
}
결과
AAA
AAA
BBB
AAA
BBB
CCC
virtual 키워드로 정의된 함수를 오버라이딩 할때 부모 함수는 은닉되는것이 아닌 재정의 되는 것으로 보이나 위와같은 방법으로 호출을 하게 될경우 재미있는 결과를 보인다
'프로그래밍(programming) > C++' 카테고리의 다른 글
다중 상속 (0) | 2013.10.17 |
---|---|
순수 가상함수(pure virtual function)와 추상클래스 (0) | 2013.10.16 |
virtual 키워드 (0) | 2013.10.16 |
protected 멤버 (0) | 2013.10.13 |
c++ class 상속 (0) | 2013.10.13 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- t570
- x270
- x1
- x1 카본 2017
- c++
- x1 carbon
- 레노버
- x1 카본 5세대
- x1c
- t450s
- t460s
- L570
- 파이썬
- lenovo
- thinkpad 13
- Yoga 370
- t470
- 소켓
- x250
- t470p
- socket
- x1 carbon 2017
- x260
- 더헌트맨
- 키보드
- Thinkpad
- Python
- L470
- t470s
- x1 carbon 5th
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함