1. 문제
2. 다음과 같이 배열을 선언하여 다음 실행 결과가 나오도록 Circle을 상속받은 NamedCircle 클래스와 main() 함수 등 필요한 함수를 작성하라.
2. 결과
3. 코드
#include <iostream>
#include <string>
using namespace std;
class Circle {
int radius;
public :
Circle(int radius=0) { this->radius = radius; }
int getRadius() { return radius; }
void setRadius(int radius) { this->radius = radius; }
double getArea() { return 3.14*radius*radius; }
};
class NamedCircle : public Circle {
string name;
public :
NamedCircle(int radius=0, string name="") : Circle( radius ) {
this->name = name;
}
void setRName(int r, string name) { setRadius(r); this->name = name; }
string getName() { return name; }
};
int main() {
NamedCircle pizza[5];
int i,r; string name;
cout << "5 개의 정수 반지름과 원의 이름을 입력하세요" << endl;
for( i=0; i<5; i++) {
cout << i+1 << ">> ";
cin >> r >> name;
pizza[i].setRName( r, name);
}
double max = pizza[0].getArea();
name = pizza[0].getName();
for( i=1;i<5; i++) {
if( pizza[i].getArea() > max ) {
max = pizza[i].getArea();
name = pizza[i].getName();
}
}
cout << "가장 면적이 큰 피자는 " << name << "입니다" << endl;
}
4. 설명
NamedCircle 클래스 배열 변수를 선언하기 위해서는 디폴트 매개변수를 가지고 있는 생성자를 작성해야 합니다.
그냥 초기 값 같은 것이므로 편한대로 0와 ""으로 디폴트 매개변수를 주었습니다.
그 후 setRName 멤버 함수를 이용하여서 입력 받은 반지름과 원의 이름을 각각 저장합니다.
'명품 C++ programming' 카테고리의 다른 글
명품 C++ programming 실습문제 8장 4번 (1) | 2019.04.22 |
---|---|
명품 C++ programming 실습문제 8장 3번 (0) | 2019.04.22 |
명품 C++ programming 실습문제 8장 1번 (0) | 2019.04.21 |
명품 C++ programming 7장 Open Challenge (0) | 2019.04.18 |
명품 C++ programming 실습문제 7장 9번, 10번 (0) | 2019.04.17 |