캡슐화
Programming/C++ 2012. 5. 12. 02:11 |#include <iostream>
using namespace std;
class Point
{
private:
int xpos, ypos;
public:
void Init(int x, int y)
{
xpos = x;
ypos = y;
}
void ShowPointInfo(void) const
{
cout<<"["<<xpos<<", "<<ypos<<"]"<<endl;
}
};
class Circle
{
private:
int rad;
Point p;
public:
void Init(int x, int y, int r)
{
rad = r;
p.Init(x, y);
}
void Show(void) const
{
cout<<"radius: "<<rad<<endl;
p.ShowPointInfo();
}
};
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(void) const
{
cout<<"Inner Circle Info..."<<endl;
c1.Show();
cout<<"Outter Circle Info..."<<endl;
c2.Show();
}
};
int main(void)
{
Ring ring;
ring.Init(1, 1, 4, 2, 2, 9);
ring.ShowRingInfo();
return 0;
}
이 코드에서 주목할 점.
Ring 클래스, Circle 클래스, Point 클래스 모두 자신의 정보를 출력하기 위한 함수를 멤버에 포함시켜서 캡슐화를 완성하였다.
'Programming > C++' 카테고리의 다른 글
이니셜라이저(Initializer) (0) | 2012.05.19 |
---|---|
생성자(Constructor) (0) | 2012.05.12 |
const 함수 (2) | 2012.05.08 |
정보은닉(Information Hiding) (0) | 2012.05.03 |
Message Passing (0) | 2012.05.02 |