开闭原则:对扩展开放,对修改关闭,增加功能是通过增加代码来实现,而不是修改源代码
#include<iostream>
using namespace std;
//计算机抽象类
class Calculator
{
public:
virtual int Get_Calculator()= 0;
virtual void Set_Calculator(int a, int b) = 0;
};
//加法算法
class Addition :public Calculator//继承抽象类,重写那两个方法,进行实现加法算法
{
public:
virtual void Set_Calculator(int a,int b)
{
this->x = a;
this->y = b;
}
virtual int Get_Calculator()
{
return x + y;
}
private:
int x;
int y;
};
//减法算法
class Subtraction :public Calculator//继承抽象类,重写那两个方法,进行实现减法算法
{
public:
virtual void Set_Calculator(int a, int b)
{
this->x = a;
this->y = b;
}
virtual int Get_Calculator()
{
return x - y;
}
private:
int x;
int y;
};
void test()
{
int a, b;
cout << "请输入两个整数:" << endl;
cin >> a >> b;
Calculator* calculate = new Addition;//加法
calculate->Set_Calculator(a, b);
cout << a<<" + "<<b<<" = "<<calculate->Get_Calculator() << endl;
delete calculate;
calculate = new Subtraction;//减法
calculate->Set_Calculator(a, b);
cout << a << " - " << b << " = " << calculate->Get_Calculator() << endl;
delete calculate;
}
void main()
{
test();
}