왜 그럴까?
쉽게 풀면, 모두다 이렇게 숙지하고 사용하기 때문이다. 이 모두 다 는 C++ 역시 마찬가지여서 이렇게 해야만 한다, (유들있게 한다면, 뭐 대충 해도 되겠지만)


이 의미는 어떤것을 지니게 될까?
학생 is a 사람, 하지만 사람 is a 학생 은 되지 않는것이다. C++로 풀자면 "상속받은 녀석은 상속해준 녀석이 될수 있지만, 상속해준 녀석은 상속받은 녀석이 될수 없다"는것이다. 그렇기 때문에, 이런 오류를 하지 말라고 필자는 강하게 말하고 있다. 왜냐하면 이런 오류가 C++의 엄청난 기능인 "다향성" 기능을 사용할 때 쉽게 범하는 오류이기 때문이다.


그렇다고 현실에 있는것이 바로 이런것들을 적용할수는 없다. 대표적인 예가 정사각형은 직사각형의 일종이지만, 정사각형이 직사각형을 상속하는 형태는, 코드 설계가 오히려 복잡해 진다고 필자는 설명한다. 자, 왜 C++ 개발자가 돈을 많이 버는지, 나타내는 구절이다. ㅋㅋ


이것만은 잊지 말자!
1. public 상속의 의미는 is-a이다!

예시 코드
class Car
{
	// 이건 Car에 대한 클래스이고
};

class Jeep : public Car
{
	// Jeep 차이긴 하나 좀더 특화된 차이기 때문에 차를 상속하고 Jeep 구현한다.
	// Car 는 Jeep 아니라 오로지 Car 일 뿐이다.
	// 하지만 Jeep는 Car 이기도 하고 Jeep 이기도 하다!
};


관련링크
http://ikpil.tistory.com/335
http://kldp.org/node/42335
http://yatoyato.tistory.com/1094
http://yatoyato.tistory.com/1105
posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요