#include <iostream>
using namespace std;
class Point
{
private:
int xpos;
int 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 radius;
public:
void Init(int x,int y, int r)
{
center.Init(x, y);
radius = r;
}
void ShowCircleInfo() const
{
cout << "center: ";
center.ShowPointInfo();
cout << "radius: " << radius << endl;
}
};
class Ring
{
private:
Circle incircle;
Circle outcircle;
public:
void Init(int x1,int y1,int radius1,int x2, int y2,int radius2)
{
incircle.Init(x1, y1, radius1);
outcircle.Init(x2, y2, radius2);
}
void ShowRingInfo() const
{
cout << "Inner Circle Info..." << endl;
incircle.ShowCircleInfo();
cout << "Outter Circle Info..." << endl;
outcircle.ShowCircleInfo();
}
};
int main()
{
Ring ring;
ring.Init(1, 1, 4, 2, 2, 9);
ring.ShowRingInfo();
return 0;
}
const 선언 잊지말기
캡슐화 신경쓰기
다른버전
#include <iostream>
using namespace std;
class Point
{
private:
int xpos;
int ypos;
public:
void Init(int x, int y)
{
xpos = x;
ypos = y;
}
void ShowPointInfo() const
{
cout << "[" << xpos << "," << ypos << "]" << endl;
}
void SetXpos(int x) { xpos = x; }
void SetYpos(int y) { ypos = y; }
int GetXpos() const { return xpos; }
int GetYpos() const { return ypos; }
};
class Circle
{
private:
Point center;
int radius;
public:
void Init(int x, int y, int r)
{
center.SetXpos(x);
center.SetYpos(y);
radius = r;
}
void ShowCircleInfo() const
{
cout << "center: " << "[" << center.GetXpos() << "," << center.GetYpos() << "]" << endl;
cout << "radius: " << radius << endl;
}
};
'C++' 카테고리의 다른 글
OOP (Object-Oriented-Project) (1) | 2024.08.07 |
---|---|
문제 04-3 [C++ 기반의 데이터 입출력] (0) | 2024.08.06 |
문제 04-1 [정보은닉과 const] (0) | 2024.08.05 |
Class 활용 예제 (0) | 2024.08.05 |
문제 03-2 [클래스의 정의] (0) | 2024.08.02 |