ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 명품 C++ 3장 9번
    C++ 2018. 10. 28. 15:43

    9. Oval 클래스는 주어진 사각형에 내접하는 타원을 추상화한 클래스이다. Oval 클래스의 멤버는 모두 다음과 같다. Oval 클래스를 선언부와 구현부로 나누어 작성하라.


    - 정수값의 사각형 너비와 높이를 가지는 width, height 변수 멤버

    - 너비와 높이 값을 매개 변수로 받는 생성자

    - 너비와 높이를 1로 초기화하는 매개 변수 없는 생성자

    - width와 height를 출력하는 소멸자

    - 타원의 너비를 리턴하는 getWidth() 함수 멤버

    - 타원의 높이를 리턴하는 getHeight() 함수 멤버

    - 타원의 너비와 높이를 변경하는 set(int w, int h) 함수 멤버

    - 타원의 너비와 높이를 화면에 출력하는 show() 함수 멤버


    소스코드


    #include <iostream>
    using namespace std;
    class Oval {
        int width, height;
    public:
        Oval();
        Oval(int w, int h);
        ~Oval();
        int getWidth();
        int getHeight();
        void set(int x, int y);
        void show();
    };
    Oval::Oval() {
        width = 1; height = 1;
    }
    Oval::Oval(int w, int h) {
        width = w; height = h;
    }
    Oval::~Oval() {
        cout << "Oval 소멸 : width = " << width << ", height = " << height << endl;
    }
    int Oval::getWidth() {
        return width;
    }
    int Oval::getHeight() {
        return height;
    }
    void Oval::set(int w, int h) {
        width = w; height = h;
    }
    void Oval::show() {
        cout << "width = " << width << ", height = " << height << endl;
    }
    int main() {
        Oval a, b(3, 4);
        a.set(10, 20);
        a.show();
        cout << b.getWidth() << "," << b.getHeight() << endl;
    }


    실행결과



    실행결과의 첫 번째 줄은 a.show()의 실행 결과입니다.


    소멸자



    소멸자는 객체가 사라질 때 필요한 마무리 작업입니다.

    클래스 이름 앞에 ~를 붙입니다.

    리턴타입이 없으며 어떤 값도 리턴해서도 안 됩니다.

    오직 한 개만 존재하며 매개 변수를 가지지 않습니다.

    소멸자가 없다면 자동으로 기본 소멸자가 생성 됩니다.

    소멸자의 소멸 순서는 생성자의 생성 순서의 반대입니다.

    'C++' 카테고리의 다른 글

    명품 C++ 3장 11번  (0) 2018.10.28
    명품 C++ 3장 10번  (0) 2018.10.28
    명품 C++ 3장 8번  (0) 2018.10.28
    명품 C++ 3장 7번  (0) 2018.10.28
    명품 C++ 3장 6번  (1) 2018.10.28

    댓글

© 2018 TISTORY. All rights reserved.