본문 바로가기
C++

문제 04-2 [다양한 클래스의 정의]

by KWONE 2024. 8. 5.
#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