/*
다음의 Point 클래스를 기반으로 하여(활용하여) 원을 의미하는 Circle 클래스를 정의하자
class Point
{
private:
int xpos, ypos;
public:
void Init(int x, int y)
{
xpos = x;
ypos = y;
}
void ShowPointInfo() const
{
cout << "[" << xpos << ", " << "]" << endl;
}
};
Circle 객체에는 좌표상의 위치정보(원의 중심좌표)와 반지름의 길이 정보를 저장 및 출력할 수 있어야 한다.
그리고 여러분이 정의한 Circle 클래스를 기반으로 Ring 클래스도 정의하자.
링은 두개의 원으로 표현 가능하므로(바깥쪽 원과 안쪽 원), 두 개의 Circle 객체를 기반으로 정의가 가능하다.
다음 main 함수를 기반으로 실행시키자
int main(void)
{
Ring ring;
ring.Init(1, 1, 4, 2, 2, 9);
ring.ShowRingInfo();
return 0;
}
Init 함수호출을 통해서 전달된 1, 1, 4는 안쪽 원의 정보에 해당하며(순서대로 X, Y, 반지름)
이어서 전달된 2, 2, 9는 바깥쪽 원의 정보에 해당한다(순서대로 X, Y, 반지름)
*/
#include <iostream>
using namespace std;
class Point
{
private:
int xpos;
int ypos;
public:
void Init(int x, int y)
{
xpos = x;
ypos = y;
}
int GetX()
{
return xpos;
}
int GetY()
{
return ypos;
}
void ShowPointInfo() const
{
cout << "[" << xpos << ", " << ypos<< "]" << endl;
}
};
class Circle
{
private:
Point pos;
int radius;
public:
void Init(int x, int y, int r)
{
pos.Init(x, y);
radius = r;
}
int GetX()
{
return pos.GetX();
}
int GetY()
{
return pos.GetY();
}
int GetR()
{
return radius;
}
};
class Ring
{
private:
Circle c1;
Circle c2;
public:
void Init(int x1, int y1, int r1, int x2, int y2, int r2)
{
c1.Init(x1, y1, r1);
c2.Init(x2, y2, r2);
}
void ShowRingInfo()
{
cout << "Inner Circle Info...." << endl << "radius:" << c1.GetR() << endl;
cout << "[" << c1.GetX() << ", " << c1.GetY() << "]" << endl;
cout << "Outter Circle Info...." << endl << "radius:" << c2.GetR() << endl;
cout << "[" << c2.GetX() << ", " << c2.GetY() << "]" << endl;
}
};
int main(void)
{
Ring ring;
ring.Init(1, 1, 4, 2, 2, 9);
ring.ShowRingInfo();
return 0;
}
개발 환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
[참고] 열혈 C++ 프로그래밍 윤성우 저
'C++ > 열혈 C++ 프로그래밍(윤성우 저)' 카테고리의 다른 글
OOP 단계별 프로젝트 2 (0) | 2017.05.30 |
---|---|
열혈 C++ 프로그래밍 4-3 문제 (0) | 2017.05.30 |
열혈 C++ 프로그래밍 4-1 문제 (0) | 2017.05.30 |
열혈 C++ 프로그래밍 3-2 문제 (0) | 2017.05.29 |
열혈 C++ 프로그래밍 3-1 문제 (0) | 2017.05.29 |