포인터의 정적타입, 동적타입


포인터는 두 가지 종류의 타입을 가진다. 포인터 정적타입과 동적타입이란것이 있다.

포인터의 정적타입(Static Type)    : 포인터 자체의 타입
포인터의 동적타입(Dynamic Type): 포인터가  실행중에 가리키고 있는 대상체 타입



이게 무슨말이냐면~
Human* h;
Sangki s;                 //여기서 Sangki 는 내이름.............ㅋㅋㅋㅋㅋㅋ
h = &s;                    // 정적타입 : Human*, 동적타입 : Studen
                              // 정적, 동적 타입 불일치
             
              

C에서 포인터끼리는 타입이 완전히 일치할 때만 대입이 허용된다.
그러나
C++에서는 상속 관계에 있는 클래스끼리 대입할 때
좌변이 더 상위의 클래스 타입이면 캐스팅을 하지 않고도
직접 대입할 수 있도록 허용한다.( 다형성의 중요한 역할을 한다지요 ㅎㅎㅎ )

tip:
그럼 포인터끼리 대입이 아닌 객체끼리 대입은 가능할까?????????!?!!??!!!!
(물론 복사생성자가 있는 상태에서)
해답: 

부모객체는 자식객체를 대입받을수 있지만
 자식객체는 부모객체를 대입받을수 없다. 




가상함수에 대해 알아보자!!!!
링크: 2011/03/22 - [분류 전체보기] - 가상함수, 순수가상함수 란? 

이 글을 공유하기

댓글

Designed by JB FACTORY