상속과 다형성
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를 직접 혹은 간접적으로 상속하는 모든 객체를 가리킬 수 있다(객체의 주소 값을 저장할 수 있다)."
'Programming > C++' 카테고리의 다른 글
순수 가상함수(Pure Virtual Function)와 추상 클래스(Abstract Class) (0) | 2012.08.19 |
---|---|
가상 함수 (Virtual Function) (0) | 2012.08.19 |
Control 클래스 & Entity 클래스 (0) | 2012.06.22 |
상속을 이용한 프로그램 (0) | 2012.06.21 |
상속을 위한 조건 (0) | 2012.06.19 |