반응형
//************************************************* // 다형성 !! //************************************************* //************************************************* class Person { } class Student : public Person { } void main() { // int a = 10; int b = 10; double d; a = b; // a = d; // 부모의 포인터 자식의 객체 Person * p= new Student(); }
//************************************************* // - 다형성 //************************************************* // --> 부모는 자식을 가르킬 수 있다 !! //************************************************* #includeusing namespace std; class Player { private: int m_no; //넘버 int m_hp; //체력 public : Player(int no = 0, int hp = 100 ) { m_no = no; m_hp = hp; } virtual void training(){ cout << "키티타카 ,,," << endl; } virtual void Vacaiton(){} }; // 공격수 class Striker : public Player { private : int m_goal; // public : //오버라이딩 : 재정의 : // 부모의 행동을 자식이 새롭게 정의 하는것 !! void training(){ cout << " 슛~ "<< endl; } void Shot(){} void Vacaiton(){} }; class Defender : public Player { private : int m_tackle; //태클 public : // 오버라이딩 : 재정의 !! void training(){ cout << " 공 돌리기 !! " << endl; } void Vacaiton(){} }; void main() { Player * p1 = new Striker(); Player * p2 = new Defender(); // 축구팀 !! Player * PlayerList[3]; PlayerList[0] = new Striker(); PlayerList[1] = new Defender(); PlayerList[2] = new Striker(); for(int i = 0; i<3; i++) { // 신기한 코드 !! --> 알아서 찾아간다 !! // --> //함수호출 PlayerList[i]->training(); // --> 동적 바인딩 : 실행 시간에 // 어떤 함수 호출될지가 결정되는것 !! // 하나의 코드로 다양한 형태로 실행이 되는것 !! // --> 다형성 !! //함수 호출 printf(""); // 코딩 !!! --> 정적 바인딩 !! // 정적 바인딩 --> 컴파일타임: 코딩할때 어떤함수 //를 호출 할지가 결정된다 !! } }
'C, C++' 카테고리의 다른 글
[C++] 전역 함수를 이용한 연산자 오버로딩 (0) | 2014.11.18 |
---|---|
[C++] 연산자 오버로딩 (0) | 2014.11.18 |
[C++] 상속 이란? 이해, 생성, 소멸 (0) | 2014.11.18 |
[C++] this 이해 (0) | 2014.11.18 |
[C++] 캡슐화 (0) | 2014.11.18 |