더북(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_ 클래스 이름 재정의입니다.

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