포인터의 정적타입, 동적타입
- 프로그래밍/C++
- 2011. 3. 22. 16:48
포인터는 두 가지 종류의 타입을 가진다. 포인터 정적타입과 동적타입이란것이 있다.
포인터의 정적타입(Static Type) : 포인터 자체의 타입
포인터의 동적타입(Dynamic Type): 포인터가 실행중에 가리키고 있는 대상체 타입
이게 무슨말이냐면~
Human* h;
Sangki s; //여기서 Sangki 는 내이름.............ㅋㅋㅋㅋㅋㅋ
h = &s; // 정적타입 : Human*, 동적타입 : Studen
// 정적, 동적 타입 불일치
// 정적, 동적 타입 불일치
C에서 포인터끼리는 타입이 완전히 일치할 때만 대입이 허용된다.
그러나
C++에서는 상속 관계에 있는 클래스끼리 대입할 때
좌변이 더 상위의 클래스 타입이면 캐스팅을 하지 않고도
직접 대입할 수 있도록 허용한다.( 다형성의 중요한 역할을 한다지요 ㅎㅎㅎ )
tip:
그럼 포인터끼리 대입이 아닌 객체끼리 대입은 가능할까?????????!?!!??!!!!
(물론 복사생성자가 있는 상태에서)
해답:
부모객체는 자식객체를 대입받을수 있지만
자식객체는 부모객체를 대입받을수 없다.
가상함수에 대해 알아보자!!!!
링크: 2011/03/22 - [분류 전체보기] - 가상함수, 순수가상함수 란?
이 글을 공유하기