2008년 07월 29일
C++스럽게 생각하는것은??(3대속성 정리)3
이번에는 C++스럽게 생각해보는 다형성개념입니다.
제가 스크랩 해온곳에 다형성이 너무나 잘 나와있어서 설명해야 할 이유가
있을까는 잘 모르겠지만 상속, 캡슐화를 썼으니 다형성도 제 나름대로 정리해서
적어보도록 하겠습니다.
상속구조에서 반드시 고려해야 할 것은 업캐스팅(이건 자바책에서 본 용어라
C++에서도 이 용어로 사용되는지 잘 모르겠네요.)입니다.
그러니깐 인터페이스 클래스를 상위 클래스로 받았을때 자손클래스들은
부모클래스인 인터페이스 클래스로 모습이 변환(다형성)이 되면서
virtual함수를 이용해서 자신의 원래 함수의 기능으로 접근을 하게 되는 것입니다.
그외에도 오버라이딩, 오버로딩이 있으나 그건 제가 퍼온글에 더 잘 나와있으므로
생략토록 하겠고 객체지향적으로 어떻게 접근해야 할지 생각해 보겠습니다.
상속은 공통적인 부분을 묶는다는 가장 중요한 문제를 바탕으로 이루어 집니다.
그리고 위에서 말한 업캐스팅을 하여 접근할때 사용되는건 메소드가 되는데
이때의 메소드는 펜으로 글을 쓴다, 연필로 글을 쓴다, 매직으로 글을 쓴다.
에서 글을 쓴다가 되겠습니다.
이게 버츄얼 함수가 될테고 하위클래스들의 공통역할이자 사용방식이 되고
이런 기능을 묶어 두면 (하위오브젝트)로 글을 쓴다 가 될 수 있을 것 입니다.
while( 필통에 있는 모든펜을 꺼낼때까지 )
{
꺼낸물건으로 글을 쓴다;
}
이렇게 하면 기존코드의 재사용성을 늘릴수 있는데,그 이유는 인터페이스를 이어받은 모든
하위 클래스들은 저 루프에 들어가는 것이 가능하기 때문입니다.
뭐 이렇게 3대속성을 제 나름대로 다시 정리해서 적어봤네요.
잘못 된 부분이 있으면 말씀해 주시면 감사하겠고 보는 분들에게 조금이나마
도움이 되었으면 좋겠네요.
# by | 2008/07/29 01:12 | C++ | 트랙백 | 덧글(0)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]