반응형
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 | //************************************************* // 다형성 !! //************************************************* //************************************************* class Person { } class Student : public Person { } void main() { // int a = 10; int b = 10; double d; a = b; // a = d; // 부모의 포인터 자식의 객체 Person * p= new Student(); } |
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | //************************************************* // - 다형성 //************************************************* // --> 부모는 자식을 가르킬 수 있다 !! //************************************************* #include <iostream> using 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( "" ); // 코딩 !!! --> 정적 바인딩 !! // 정적 바인딩 --> 컴파일타임: 코딩할때 어떤함수 //를 호출 할지가 결정된다 !! } } </iostream> |
'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 |