c++使用接口,通过纯虚函数实现

#include <iostream>
using namespace std;

class Shape
{
protected:
    int width;
    int height;
    string name;

public:
    // pure virtial function for interface
    virtual int getArea() = 0;
    virtual string getName() = 0;
    void setWidth(int w)
    {
        width = w;
    }
    void setHeight(int h)
    {
        height = h;
    }
    void setName(string name_)
    {
        name = name_;
    }
};

class Rectangle : public Shape
{
public:
    int getArea()
    {
        return width * height;
    }

    string getName()
    {
        return "retangle";
    }
};

class Triangle : public Shape
{
public:
    int getArea()
    {
        return (width * height) / 2;
    }

    string getName()
    {
        return "triangle";
    }
};

int main()
{
    Rectangle rectangle;
    Triangle triangle;
    rectangle.setWidth(5);
    rectangle.setHeight(7);
    triangle.setWidth(5);
    triangle.setHeight(7);
    cout << rectangle.getName() << " area is:" << rectangle.getArea() << endl;
    cout << triangle.getName() << " area is:" << triangle.getArea() << endl;
    return 0;
}

 不错的学习内容

posted @ 2023-01-08 16:10  johnny_zhao  阅读(23)  评论(0编辑  收藏  举报