먼저 어떠한 좌표를 저장 하는 클래스를 기본적으로 만들어 보자
class Point
{
public:
int x; //x 좌표는 0보다 커야 한다.
int y; //y 좌표는 0보다 커야 한다.
}
int main(void)
{
Point p1 = {-2,4};
Point p2 = {3,5};
return 0;
}
위 코드를 보듯이 Point 멤버 변수 x,y를 public로 선언을 하는 바람에 어디서든 접근이 가능 하게 되어 버렸다. 따라서 0보다 작은 수를 실수로 저장이 되어 버리는 현상이 발견 되었다. 이 부분을 방지 하기 위해서 임의로 막아 주는 부분이 필요 하다.
Point.h 파일
class Point
{
private:
int x;
int y;
public:
void InitMembers(int xpos,int ypos);
int GetX();
int GetY();
bool SetX(int xpos);
bool SetY(int ypos);
}
Point.cpp 파일
bool Point::InitMembers(int xpos,int ypos)
{
if(xpos < 0 || ypos < 0)
{
return false;
}
x = xpos;
y = ypos;
return true;
}
int Point::GetX()
{
return x;
}
int Point::GetY()
{
return y;
}
bool Point::SetX(int xpos)
{
if(xpos < 0)
{
return false;
}
x = xpos;
return true;
}
bool Point::SetY(int ypos)
{
if(ypos < 0)
{
return false;
}
y = ypos;
return true;
}
위 코드 처럼 Point 멤버 변수 x,y를 숨겨서 개발자가 실수를 최대한 줄여 줄수 있게 하는 방법 입니다.
또한 GetY(),GetX() 를 GetY() const ,GetX() const를 함으로써 더욱 안정성을 높여 주는 것도 하나의 방법이다.