#include <iostream>
using namespace std;
class abstractCalculator{
public:
virtual int getResult(){return 0;};
void setv1(int v){
this->val1=v;
}
void setv2(int v){
this->val2=v;
}
int val1;
int val2;
};
class AddCalculator:public abstractCalculator{
public:
virtual int getResult(){
return val1+val2;
}
};
class SubCalculator:public abstractCalculator{
public:
virtual int getResult(){
return val1-val2;
}
};
void test01(){
abstractCalculator* abc;
abc=new AddCalculator;
abc->setv1(10);
abc->setv2(20);
cout<<abc->getResult()<<endl;
delete abc;
abc=new SubCalculator;
abc->setv1(10);
abc->setv2(20);
cout<<abc->getResult()<<endl;
}
int main() {
test01();
return 0;
}