티스토리 뷰

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
링크
«   2024/05   »
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
글 보관함