먼저 어떠한 좌표를 저장 하는 클래스를 기본적으로 만들어 보자


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를 함으로써 더욱 안정성을 높여 주는 것도 하나의 방법이다.



+ Recent posts