-
명품 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