부모클래스에서 자식 클래스 멤버함수를 호출하는 방법
글쓴이: kws4679 / 작성시간: 화, 2011/03/15 - 10:14오후
객체지향 프로그래밍 연습하려고 그림을 그리는것에서
Shape 란 기본 객체를 만들고 이를 상속하는 Box 라는 객체를 만들었습니다
class Shape {
private:
...
public:
void moveShape(int x, int y);
virtual void drawShape();
...
};
class Box : Shape {
private:
...
public:
void drawShape();
};
제 미숙한 실력으로 생각해본결과 모든 그려지는 모양은 움직이는것은 단지 x,y방향으로 이동만
하면 되므로 이는 부모 클래스에 존재하고 실제 구현은 각 모양마다 다르므로
가상함수를 통해 각각 구현하기로 했습니다 그런데 moveShape 함수 내부에서
좌표를 움직이고 새로 갱신된 좌표대로 박스를 그려야 하는데 이때
drawShape() 를 어떻게 호출해야 할지 모르겠습니다
void Shape::moveShape(int x, int y)
{
this->drawShape();
}
나름대로 머리를 굴려서 생성된 Box 객체 내에서 this 포인터를 통해 drawShape 를
호출하려고 했는데 컴터가 폭주해버립니다.... 컴파일은 잘 되는데 ㅠㅠ
어떤게 문제일까요 그리고 어떻게 하면 더 좋은 설계가 될지
선배님들 조언 부탁드립니다!!!
Forums:
http://codepad.org/a3zurXOq
http://codepad.org/a3zurXOq
원하시는게 이런거 아닌가요?
참고해보세요.
상속 오버라이딩 함수 VS 가상 함수 (OVERRIDING VS PURE VIRTUAL FUNCTION)
http://codepad.org/xSQAfwf8
//
오버로딩 / 오버라이딩 / 다형성
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNO=20&no=974509&ref=974509&page=1
http://memoryfilm.tistory.com/16
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기