728x90
#include<iostream>
#include<string>
using namespace std;
class Shape {
protected:
string name;
int width, height;
public:
Shape(string n = "", int w = 0, int h = 0) { name = n; width = w; height = h; }
virtual double getArea() { return 0; }
string getName() { return name; }
};
class Oval :public Shape {
public:
Oval(string n, int w, int h) :Shape(n, w, h) {}
double getArea() { return 3.14 * width * height; }
};
class Rect :public Shape {
public:
Rect(string n, int w, int h) :Shape(n, w, h) {}
double getArea() { return width * height; }
};
class Triangular :public Shape {
public:
Triangular(string n, int w, int h) :Shape(n, w, h) {}
double getArea() { return width * height / 2; }
};
int main() {
cout << "2018305065 전유정" << endl << endl;
Shape* p[3];
p[0] = new Oval("빈대떡", 10, 20);
p[1] = new Rect("찰떡", 30, 40);
p[2] = new Triangular("토스트", 30, 40);
for (int i = 0; i < 3; i++)
cout << p[i]->getName() << "넓이는 " << p[i]->getArea() << endl;
for (int i = 0; i < 3; i++)
delete p[i];
}
반응형
'전공 공부 > C++' 카테고리의 다른 글
LoopAdder 클래스 상속 (0) | 2021.06.16 |
---|---|
클래스 KmToMile (0) | 2021.06.16 |
클래스 WonToDollar (0) | 2021.06.16 |
클래스 Shape 가상 함수 (0) | 2021.06.16 |
클래스 BaseArray (상속) (0) | 2021.06.16 |