상속과 다형성

Programming/C++ 2012. 6. 23. 04:57 |

객체 포인터의 참조관계


※ 상속은 IS-A 관계의 표현을 위한 수단이다.


Person* ptr;                // 포인터 변수 선언

ptr = new Person();    // 포인터 변수의 객체 참조


위의 두 문장이 실행되면, 포인터 ptr은 Person 객체를 가리키게 된다. 그런데 Person형 포인터는 Person 객체뿐만 아니라, Person 을 상속하는 유도 클래스의 객체도 가리킬 수 있다.


- exsample - 



33행: Student는 Person을 상속하므로, Person형 포인터 변수는 Student 객체를 가리킬 수 있다.

34행: PartTimeStudent는 Person을 간접 상속하므로, Person형 포인터 변수는 PartTimeStudent 객체를 가리킬 수 있다.

35행: PartTimeStudent는 Student를 상속하므로, Student형 포인터 변수는 PartTimeStudent객체를 가리킬 수 있다.


PartTimeStudent 는 Person을 직접 상속하지는 않지만, Person을 상속하는 Student를 상속함으로써, Person 클래스를 간접 상속하고 있다.


"C++에서, A형 포인터 변수는 A객체 또는 A를 직접 혹은 간접적으로 상속하는 모든 객체를 가리킬 수 있다(객체의 주소 값을 저장할 수 있다)."



Posted by scii
: