c++(多态 && 计算器案例)

c++(多态 && 计算器案例)

利用多态实现计算器案例,利于后期的扩展,机构性非常好,可读性高

class abstractCalculator{
public:
//纯虚函数,如果父类中有了纯虚函数,那么子类在继承中必须继承纯虚函数,这个父类也就无法实例化对象 
    virtual int getResult()=0;
   // virtual int getResult(){return 0;}
    void setV1(int v)
    {
        this->val1 = v;
    }
    void setV2(int v)
    {
        this->val2 = v;
    }
public:
    int val1;
    int val2;
};
class IntCalculator :public abstractCalculator{
public:
    virtual int getResult()
    {
        return val1+val2;
    }
};
class SubCalculator :public abstractCalculator
{
public:
    virtual int getResult()
    {
        return val1-val2;
    }
};
class ChangCalculator :public abstractCalculator
{
public:
    virtual int getResult()
    {
        return val1*val2;
    }
};

void test()
{
    abstractCalculator  *abc;
    abc = new IntCalculator;
    abc->setV1(10);
    abc->setV2(20);
    cout<<abc->getResult()<<endl;
    delete abc;
    abc = new SubCalculator;
    abc->setV1(40);
    abc->setV2(20);
    cout<<abc->getResult()<<endl;
    delete abc;
    abc = new ChangCalculator;
    abc->setV1(2);
    abc->setV2(2);
    cout<<abc->getResult()<<endl;
}

posted on 2021-04-25 15:34  lodger47  阅读(72)  评论(0编辑  收藏  举报

导航