• 검색 결과가 없습니다.

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
2
0
0

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

전체 글

(1)

- 1 -

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

2018. 10. 17

학번: 이름:

[문제 1] 벡터 활용 실습: 다음 코드에 답하시오.

int main(void) {

vector<string> vec;

vec.push_back("MILK");

vec.push_back("BREAD");

vec.push_back("BUTTER");

for (auto e : vec) { cout << " " << e;

}

cout << endl;

return 0;

}

a. 위의 코드를 실행시키시오.

b. 위의 코드를 다음과 같이 벡터에 데이터를 삽입하고, 출력하는 부분을 함수로 작성하고, 실행시켜라.

getData(), display()를 main() 뒤에 작성하라.

int main(void) {

vector<string> vec;

getData(vec);

display(vec);

return 0;

}

c. 벡터에 포함된 데이터를 알파벳순서로 정렬하여 출력하고자 한다. 다음과 같이 sortData()를 작성하여 main()을 수정하고, 테스트하라. 여러분은 STL에서 제공하는 sort() 함수를 이용해야 한다.

int main(void) {

vector<string> vec;

getData(vec);

sortData(vec);

display(vec);

return 0;

}

d. 벡터에 포함된 데이터를 알파벳 역순으로 정렬하여 출력하도록, sortData()를 수정하고, 테스트하라.

(2)

- 2 -

[문제 2] 객체 동적 생성 실습: 다음 코드에서와 같이 객체를 동적으로 생성하고, 반환하라.

class Circle { int radius;

public:

Circle();

Circle(int r);

~Circle();

void setRadius(int r) { radius = r; }

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

radius = 1;

cout << "생성자 실행 radius = " << radius << endl;

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

cout << "생성자 실행 radius = " << radius << endl;

}Circle::~Circle() {

cout << "소멸자 실행 radius = " << radius << endl;

}int main() {

Circle *p, *q;

Circle r;

p = new Circle;

q = new Circle(30); // 1) // 2)

cout << p->getArea() << endl << q->getArea() << endl;

delete p;

delete q;

}

a. 위의 코드가 1)까지 실행되었을 때, 생성된 객체, 포인터 변수, p, q의 상태를 각각 나타내라.

b. 첫 번째 생성된 Circle 객체의 반지름을 10으로 변경하는 문장을 2)의 위치에 작성하라.

c. 위 코드를 실행시키고, 그 결과를 작성하라. 그 이유를 주라.

d. 위의 코드에서 main() 함수가 다음을 수행하도록 수정하고, 테스트하라:

1) 사용자로부터 정수 반지름을 입력받고, Circle 객체를 동적 생성하고, 그 원의 면적을 구하여 출력하라.

그리고 객체를 삭제하라.

2) 사용자가 음수를 입력할 때까지 1)의 과정을 반복한다.

e. d)에서 동적 생성한 Circle 객체를 벡터에 저장하여 반환하는 getData()를 작성하고, 벡터에 포함된 Circle 객체를 면적이 작은 순서로 정렬하는 SortData()를 작성하고, 벡터에 포함된 각 원의 면적을 출력하는 display()함수를 작성하라. 위의 함수를 순서대로 호출하는 main()를 작성하고, 테스트하라.

참조

관련 문서

에서 정의된 이변수함수 를 생각하고 을 가정하자..

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

Object 파일 또는 중간파일 .OBJ 파일을 링커를 통해 실행(exe) 파일로 변환 (보안,호환, 컴파일 시간 절약).. 각종

현재 작성하고 있는 HTML 파일과 그림 파일이 다른 폴더 안에 있다면, 경로 를 지정해 주어야 한다... TYPE=disc, circle,

관련된 객체에 링크에 대한 레 상속을 사용 클라이언트 클 구현. 관련된 객체에 대한 인스턴스 변수를 정의,

 객체지향 분석 설계에서는 일단 시스템에서 취급해야 될 객체를 추 출하게 되면 그것을 가지고 객체를 구조, 기능, 동작의 3가지 측면으 로

 현재 디렉토리 클래스에 포함된 모든 요소(디렉토리 또는 파일)를 하나하나 꺼내서 그 사이즈를 합한다..  아래 코드에서, entry가 File의 인스턴스나

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