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

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