1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

#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() = 0;

    string getName() { return name; }

};

class Oval :public Shape {

public:

    Oval(string n = "", int w = 0, int h = 0) :Shape(n, w, h) { ; }

    double getArea() {

        return width * height*3.14;

    }

};

class Rect :public Shape {

public:

    Rect(string n = "", int w = 0, int h = 0) :Shape(n, w, h) { ; }

    double getArea() {

        return width * height;

    }

};

class Triangular :public Shape {

public:

    Triangular(string n = "", int w = 0, int h = 0) :Shape(n, w, h) { ; }

    double getArea() {

        return width * height/2;

    }

};

int main() {

    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];

}

Colored by Color Scripter

cs

'C++' 카테고리의 다른 글

명품 c++ 9장 실습문제 7번  (0) 2019.06.14
명품 c++ 9장 실습문제 6번  (0) 2019.06.14
명품 c++ 9장 실습문제 5번  (0) 2019.06.14
명품 c++ 9장 실습문제 3,4 번  (0) 2019.06.14
명품 c++ 9장 실습문제 1,2 번  (0) 2019.06.14

+ Recent posts