부모 human
자식 h 라고하면
human *p = &h;
자식 부모간의 형 자체가 틀린데 컴파일러는 오류없이 실행되는건가요
그냥 나름대로 생각해본건데 부모함수 메소드보다는 자식 메소드가 더 많지않습니가
그런데 부모 는 자식에게 메소드를 상속 시켜있는 상태라 저 p포인터는 상속된 메소드만 가르키고 있는거고
부모에 없는 메소드를 제외시킨상태가 되는거아닌가여?
자식 h 라고하면
human *p = &h;
자식 부모간의 형 자체가 틀린데 컴파일러는 오류없이 실행되는건가요
그냥 나름대로 생각해본건데 부모함수 메소드보다는 자식 메소드가 더 많지않습니가
그런데 부모 는 자식에게 메소드를 상속 시켜있는 상태라 저 p포인터는 상속된 메소드만 가르키고 있는거고
부모에 없는 메소드를 제외시킨상태가 되는거아닌가여?
int a = 8, double b = 9; ///// b = a; ///이런건 어떻게 됩닊까? 형 자체가 다른데????
그러닌깐 그래서 이해가 안되야
1. 그냥 편하게 타입도 상속된다고 생각하면 됨. 그리고 사실 포인터 타입은 걍 1워드 사이즈 메모리 주소만 갖고 있지 별거없음. 2. 부모에 없는 메소드도 존재함. 이미 자식 클래스가 찍어놓은 붕어빵(그러니까, Object) h가 메모리 상에 올라와 있는거니까. 물론 타입은 부모로 되있으니 오류는 뜨던가? 걍 저 p를 자식클래스 포인터 타입으로 타입변환 해보면 자식에만 있는 메소드도 잘 실행됨.
c++이냐? 인스턴스는 멤버함수를 가지고 있는게 아니야. 인스턴스가 가지고 있는건 단지 멤버변수와 가상함수테이블일뿐이지
상속이 왜 필요한지를 전혀 모르고 있는거 같은데..
단순히 복사 붙여넣기 귀찮아서 상속을 쓰는게 아니다.