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 멤버 함수를 이용하여서 입력 받은 반지름과 원의 이름을 각각 저장합니다.

 

+ Recent posts