더북(TheBook)

Rect_ 클래스를 사용하는 코드 작성 방법에 대해 알아보겠습니다. 2차원 정수형 좌표계에서의 사각형 정보를 표현하려면 다음과 같이 코드를 작성할 수 있습니다.

Rect rc1;                    // rc1 = [0 x 0 from (0, 0)]
Rect rc2(10, 10, 60, 40);    // rc2 = [60 x 40 from (10, 10)]

이 코드에서 오른쪽 주석으로 표시된 부분은 연산에 의해 생성되는 Rect_ 객체의 위치와 크기 정보를 나타냅니다. 즉, rc2는 (10, 10) 좌표부터 크기가 60×40인 사각형임으로 나타냅니다. 변수 rc1은 기본 생성자를 사용하여 생성되었으며, 이 경우 모든 멤버 변수는 0으로 초기화됩니다. 변수 rc2는 네 개의 정수를 생성자 인자로 사용하였으며, 이 인자들은 차례대로 Rect_ 클래스의 멤버 변수 x, y, width, height 값으로 설정됩니다.

Rect_ 클래스는 Size_ 또는 Point_ 클래스 객체와의 산술 연산자 재정의가 되어 있습니다. 덧셈 연산자를 이용하여 Rect_ 객체와 Size_ 객체를 서로 더하면 사각형의 가로와 세로 크기가 변경됩니다. 반면에 Rect_ 객체와 Point_ 객체를 서로 더하거나 빼면 사각형 위치가 변경됩니다. 다음은 Rect_ 객체의 크기 및 위치를 변경하는 코드 예제입니다.

// rc1 = [0 x 0 from (0, 0)], rc2 = [60 x 40 from (10, 10)]
Rect rc3 = rc1 + Size(50, 40);    // rc3 = [50 x 40 from (0, 0)]
Rect rc4 = rc2 + Point(10, 10);   // rc4 = [60 x 40 from (20, 20)]

이 코드에서 rc1 객체는 모든 멤버 변수가 0으로 설정되어 있는 유효하지 않은 사각형입니다. 변수 rc1Size(50, 40)을 더하면 rc1의 가로 크기와 세로 크기가 각각 50과 40만큼 증가합니다. 그러므로 rc3은 (0, 0) 좌표에서 시작하고, 가로 50, 세로 40인 사각형을 표현하게 됩니다. 변수 rc4rc2 객체에 Point(10, 10)을 덧셈 연산자를 이용하여 더하였으며, 이 경우 rc2 사각형의 위치가 (10, 10)만큼 이동합니다. rc2 사각형이 (10, 10)에서 시작하는 60×40 크기의 사각형이므로, rc4는 (20, 20)에서 시작하는 같은 크기의 사각형이 됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.