Minwoo Dev.
[C++] 윤성우의 열혈 C++ 프로그래밍 Ch04-2 : 다양한 클래스의 정의 문제풀이 본문
728x90
반응형
SMALL
문제
다음의 Point 클래스를 기반으로 하여(활용하여) 원을 의미하는 Circle 클래스를 정의하자.
class Point{
private:
int xpos, ypos;
public:
void Init(int x, int y){
xpos=x;
ypos=y;
}
void ShowPointInfo() const{
cout<<"["<<xpos<<", "<<ypos<<"]"<<endl;
}
};
Circle 객체에는 좌표상의 위치 정보(원의 중심좌표)와 반지름의 길이 정보를 저장 및 출력할 수 있어야한다. 그리고 여러분이 정의한 Circle 클래스를 기반으로 Ring 클래스도 정의하자. 링은 두 개의 원으로 표현가능하므로(바깥쪽 원과 안쪽 원), 두 개의 Circle 객체를 기반으로 정의가 가능하다. 참고로 안쪽 원과 바깥쪽 원의 중심좌표가 동일하다면 두께가 일정한 링을 표현하는 셈이 된다.
이렇게 해서 클래스의 정의가 완료되었다면, 다음 main함수를 기반으로 실행시키자/
실행의 예
Inner Circle Info ...
radius : 4
[1, 1]
Outter Circle Info ...
radius : 9
[2, 2]
정답
#include <iostream>
using namespace std;
class Point
{
private:
int xpos, ypos;
public:
void Init(int x, int y)
{
xpos = x;
ypos = y;
}
void ShowPointInfo() const
{
cout << "[" << xpos << ", " << ypos << "]" << endl;
}
};
class Circle
{
private:
Point center;
int r;
public:
void Init(int x, int y, int rad)
{
center.Init(x, y);
r = rad;
}
void ShowCircle()
{
center.ShowPointInfo();
cout << "radius : " << r << endl
<< endl;
}
};
class Ring
{
private:
Circle OuterCir;
Circle InnerCir;
public:
void Init(int Ox, int Oy, int Or, int Ix, int Iy, int Ir)
{
InnerCir.Init(Ox, Oy, Or);
OuterCir.Init(Ix, Iy, Ir);
}
void ShowRingInfo()
{
cout << "Inner Circle Info..." << endl;
InnerCir.ShowCircle();
cout << "Outer Circle Info..." << endl;
OuterCir.ShowCircle();
}
};
int main(void)
{
Ring ring;
ring.Init(1, 1, 4, 2, 2, 9);
ring.ShowRingInfo();
return 0;
}
결과
728x90
반응형
LIST
'C++' 카테고리의 다른 글
[C++] 참조자 (0) | 2024.03.10 |
---|---|
[C++] 윤성우의 열혈 C++ 프로그래밍 Ch04-3 : C++ 기반의 데이터 입출력 문제풀이 (0) | 2024.03.09 |
[C++] 윤성우의 열혈 C++ 프로그래밍 Ch04-1 : 정보 은닉과 const 문제풀이 (0) | 2024.03.09 |
[C++] 윤성우의 열혈 C++ 프로그래밍 Ch03-2 : 클래스의 정의 문제풀이 (0) | 2024.03.06 |
[C++] 윤성우의 열혈 C++ 프로그래밍 Ch03-1 : 구조체 내에 함수 정의하기 문제풀이 (0) | 2024.03.05 |