• 검색 결과가 없습니다.

객체지향 프로그래밍 실습 (6주차)

N/A
N/A
Protected

Academic year: 2021

Share "객체지향 프로그래밍 실습 (6주차)"

Copied!
2
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

- 1 -

객체지향 프로그래밍 실습 (6주차)

2018. 10. 10

학번: 이름:

[문제 1] 다음 코드에 대해서 답하시오.

class Circle { private:

int radius;

public:

Circle();

Circle(int r);

double getArea();

};

Circle::Circle() {

radius = 1;

cout << "반지름 " << radius << " 원 생성" << endl;

}

Circle::Circle(int r) { radius = r;

cout << "반지름 " << radius << " 원 생성" << endl;

}

double Circle::getArea() { return 3.14*radius*radius;

}

int main() {

Circle donut;

double area = donut.getArea();

cout << "donut 면적은 " << area << endl;

Circle pizza(30);

area = pizza.getArea();

cout << "pizza 면적은 " << area << endl;

}

a. 위 코드를 실행시키고, 그 결과를 작성하라. 그 이유를 주라. (생성된 객체 donut, pizza를 각각 그려라)

b. 위의 코드에서 기본 생성자만을 삭제할 경우에, 그 결과는 무엇인가? 그 이유를 주라.

c. 위의 코드에서, 2개의 생성자를 모두 삭제하고, main()에서 donut 객체만을 생성할 경우에 그 결과는 무엇 인가? 그 이유를 주라.

d. 위의 코드에 다음의 Circle 객체 소멸자를 추가하고, 실행시켜라. 실행 결과는 무엇인가? 객체는 어떤 순서 로 소멸되는가?

Circle::~Circle() {

cout << "반지름 " << radius << " 원 소멸" << endl;

}

e. 위의 코드를 클래스 선언부와 구현부로 구분하여 다음과 같이 3개의 파일로 다시 작성하고, 테스트하라:

Cirlce.h, Circle.cpp, main.cpp

(2)

- 2 -

f. 위의 코드에서(소멸자 추가 버전) main() 함수를 다음과 같이 수정하고, 실행시켜라. 그 결과는 무엇인가?

그 이유를 작성하라.

int main() {

Circle circleArray[3];

g. f)의 main() 함수를 다음과 같이 수정하고, 테스트하라. 그 결과는 무엇인가? 그 이유를 작성하라.

int main() {

Circle circleArray[3] = { Circle(10), Circle(20), Circle() };

for(int i=0; i<3; i++)

cout << "Circle " << i << "의 면적은 " << circleArray[i].getArea() << endl;

}

2. 다음 main() 함수와 실행 결과를 고려하여 Oval 클래스를 작성하고, 테스트하라. Oval 클래스는 private 영 역에 width, hight의 데이터 멤버를 갖는다. 실행 결과는 그 아래에서 보여준다.

int main() {

Oval a, b(3, 4);

a.set(10, 20); // Oval의 width, height를 각각 설정 a.show();

cout << b.getWidth() << ", " << b.getHeight() << endl;

}

참조

관련 문서

annualsalary: 외부에서 접근하지 않으나 파생 클래스에서

File[] listFiles() : 해당 경로에 있는 파일의 목록을 File 배열로 리턴합니다.. String getName() : 해당 경로에 있는 파일이나

• 애플리케이션의 여러 자원들과 메인 프레임 클래스, View 클래스, Document 클래스 등을 하나의 묶 음으로 가지는

 나비는 종류에 따라 서식지가 다르기 때문에 좋아하는 꽃도 다르지 만, 어떤 나비이든 「꿀을 빤다」라고 하는 조작..  객체지향에서는 이와 같은

 클래스계층 공유어프로치에서는, 부모(parent)클래스에 정의되어 있는 정보의 조작은 자식(child)클래스에서 정의되지 않고, 정의되지 않은 나머지 것만을

강의실(lecture room)에 적어도 1주일에 1회 이상 방문하기 바람.. 과제는 6주차 강의

Janbu’s simplified Corps of Engineers Lowe &amp; Karafiath Janbu’s generalized Bishop’s rigorous

상속에 의한 클래스 인스턴스의