class First
{
// 생략
};
class Second : public First
{
// 생략
};
class Third : public Second
{
// 생략
};
int main(void)
{
Third * tptr = new Third();
Second * sptr = tptr;
First * fptr = sptr;
대충 이렇게 있을 때
sptr 이 tptr을 참조하는거랑
fptr 이 sptr을 참조하는게 이해가 안됨.
tptr에는 Second에 없는 멤버가 있을 수도 있는데
어떻게 Second의 포인터 변수가 tptr을 참조하지?
second sptr에서는 thrid를 가질수 있지만 second에서 가지고 있는거만 참조할수있어요
first에서는 third second를 가질수 있지만 first에 있는 변수나 함수만 쓸수 있지요.
근데 third로 sptr 참조는 못하던데여 sptr에 third가 가지고 있는거만 참조하면 되지 않나여?
first에서 second나 third에 있는걸 쓰려고 했다간 컴파일 에러가 나버릴거에요.
네, 자신보다 부모니까 자식을 가지는게 당연하죠. 하지만 자식이 부모를 가지는건 불가능해요.
흠 그건 그냥 부모가 자식을 가지는거라고 이해하면되려나;; 감사합니다.
마인부우가 먹었어
저것들은 클래스 포인터 잖어. 일반 클래스처럼 생각하믄 안되지.