#include <Turboc.h>
#include <math.h>
class Sun
{
private:
int x, y;
char ch;
public:
Sun(int ax, int ay, char ach) { x = ax; y = ay; ch = ach; }
void Show() {
gotoxy(x, y); putch(ch);
}
void Hide() {
gotoxy(x, y); putch(' ');
}
int GetX() const { return x; }
int GetY() const { return y; }
};
class Earth
{
private:
int r;
int x, y;
char ch;
const Sun *pSun;
public:
Earth(int ar, char ach, Sun *apSun) { r = ar; ch = ach; pSun = apSun; }
void Revolve(double angle) {
Hide();
x = int(cos(angle*3.1416 / 180)*r * 2);
y = int(sin(angle*3.1416 / 180)*r);
Show();
}
void Show() {
gotoxy(pSun->GetX() + x, pSun->GetY() + y); putch(ch);
}
void Hide() {
gotoxy(pSun->GetX() + x, pSun->GetY() + y); putch(' ');
}
};
void main()
{
Sun S(40, 12, 'S');
Earth E(10, 'E', &S);
clrscr();
S.Show();
for (double angle = 0; !kbhit(); angle += 10) {
E.Revolve(angle);
delay(100);
}
}
여기서 Hide() 가 무슨 역활인지 모르겠어
알려주실분 크흠...
pSun->GetX() + x, pSun->GetY() + y좌표로 콘솔의 커서를 옮겨서 ' ' 를 출력하는 함수아닐까여
터보오-씨를 써보지 않아서 아니면 아몰랑
ㅊㄹ님 말 맞습니당. ' '는 공백이니깐 콘솔에 출력된 x,y좌표에 있는 글자가 지워지는것 처럼 보이겠져..
Earth E(10, 'E', &S) 얘내를 삽입해서 좌표를 구해야될텐데 &S는 어떻게 해석해야될지모르겟음
&var; 에서 &연산자는 var의 주소를 반환합니다. Earth의 생성자에서 Sun의 포인터를 넣으라 해서 쓰인겅미
*pSun이 태양 객체를 가르키는 포인터잖아. 태양 클래스는 태양의 위치값을 멤버로 가지고있고. Revolve 함수 보면 Hide와 Show에서 태양 좌표값을 기준으로 좌표를 잡음.