문제.
* 문제 1~2에 적용되는 원을 추상화한 Circle 클래스가 있다.
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 2.14*radius*radius }
};
2. 다음과 같이 배열을 선언하여 다음 실행 결과가 나오도록 Circle을 상속받은 NamedCircle 클래스와 main() 함수 등 필요한 함수를 작성하라.
NamedCircle pizza[5];
코드.
#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;
}
** 클래스 배열 변수를 선언하기 위해서는 디폴트 매개 변수를 꼭 이용하여야 한다.
'programming > 명품 C++ programming' 카테고리의 다른 글
명품 C++ programming 실습 문제 8장 4번 (0) | 2020.08.22 |
---|---|
명품 C++ programming 실습 문제 8장 3번 (0) | 2020.08.17 |
명품 C++ programming 실습 문제 8장 1번 (0) | 2020.08.17 |
명품 C++ programming 실습 문제 7장 9번 (0) | 2020.08.16 |
명품 C++ programming 실습 문제 7장 8번 (0) | 2020.08.16 |
댓글