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