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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기