윤's군 2013. 10. 16. 10:48

말그대로 가상임

Example 1

class AAA{

public:

virtual void fct(){

cout << "AAA" << endl;

}

};


class BBB:public AAA{

public:

void fct(){ // virtual

cout << "BBB" << endl;

}

};




int _tmain(int argc, _TCHAR* argv[])

{

BBB *b = new BBB;

AAA *a = b;


a->fct();

b->fct();

return 0;

}


출력결과는 

BBB

BBB



Example 2

class AAA{

public:

virtual void fct(){

cout << "AAA" << endl;

}

};


class BBB:public AAA{

public:

void fct(){ // virtual

cout << "BBB" << endl;

}

};


class CCC:public BBB{

public:

void 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;

}


출력결과는

CCC

CCC

CCC