더북(TheBook)

3.1.2 Size_ 클래스

영상 또는 사각형 영역의 크기를 표현할 때에는 Size 클래스를 사용합니다. Size 클래스는 사각형 영역의 가로와 세로 크기를 나타내는 widthheight 멤버 변수를 가지고 있습니다. 간략화한 Size_ 클래스 정의를 코드 3-2에 나타냈습니다.

코드 3-2 간략화한 Size_ 클래스 정의와 이름 재정의

01    template<typename Tp> class Size
02    {
03    public:
04        Size();
05        Size(_Tp _width, _Tp height);
06        Size(const Size& sz);
07
08 Size
& operator = (const Size_& sz); 09
10 _Tp area() const; 11 bool empty() const; 12
13 Tp width, height; 14 }; 15
16 typedef Size
<int> Size2i; 17 typedef Size<int64> Size2l; 18 typedef Size<float> Size2f; 19 typedef Size_<double> Size2d; 20 typedef Size2i Size;

 

4행 기본 생성자. width = 0, height = 0으로 초기화됩니다.

5행 (_width, _height) 크기를 인자로 받는 생성자. width = _width, height = height로 초기화됩니다.

6행 복사 생성자. width = sz.width, height = sz.height로 초기화됩니다.

8행 대입 연산자 재정의입니다.

10행 Size::area() 멤버 함수는 사각형 크기에 해당하는 면적(width×height)을 반환합니다.

11행 Size::empty() 멤버 함수는 유효하지 않은 크기이면 true를 반환합니다.

13행 멤버 변수. width는 사각형 영역의 가로 크기, height는 사각형 영역의 세로 크기를 나타냅니다.

16~20행 다양한 자료형에 대한 Size 클래스 이름 재정의입니다.

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