명품C++프로그래밍
명품 C++ Programming 실습문제 8장 1번
anycoding
2021. 5. 21. 20:35
반응형
문제 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 3.14 * radius * radius; }
};
문제
다음 코드가 실행되도록 Circle을 상속받는 NamedCircle 클래스를 작성하고 전체 프로그램을 완성하라.
int main()
{
NamedCircle waffle(3, "waffle"); //반지름이 3이고 이름이 waffle인 원
waffle.show();
}
결과
반지름이 3인 waffle
소스코드
#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 r, string name);
void show();
};
NamedCircle::NamedCircle(int r, string name)
{
setRadius(r);
this->name = name;
}
void NamedCircle::show()
{
cout << "반지름이 " << getRadius() << "인 " << name << endl;
}
int main()
{
NamedCircle waffle(3, "waffle"); //반지름이 3이고 이름이 waffle인 원
waffle.show();
}
설명
Circle을 상속받으므로 Circle에 존재하는 반지름 설정함수 setRadius(), 반지름 출력함수 getRadius()을 사용할 수 있다.
반응형