C++两种方式实现是计算
1.使用类的普通实现
class Calculator
{
public:
float getCalculator(string ca) {
if (ca == "+") {
return num1 + num2;
}
if (ca == "-") {
return num1 - num2;
}
if (ca == "*") {
return num1 * num2;
}
if (ca == "/") {
return num1 / num2;
}
}
Calculator(float a,float b) {
num1 = a;
num2 = b;
}
float num1, num2;
};
int main() {
Calculator c(5,7);
cout << c.num1 << "+" << c.num2 << "=" << c.getCalculator("+") << endl;
cout << c.num1 << "-" << c.num2 << "=" << c.getCalculator("-") << endl;
cout << c.num1 << "*" << c.num2 << "=" << c.getCalculator("*") << endl;
cout << c.num1 << "/" << c.num2 << "=" << c.getCalculator("/") << endl;
}
2.使用多态实现
class Calculator
{
public:
virtual float getCalculator() {
return 0;
}
float num1, num2;
};
class addNum : public Calculator
{
public:
float getCalculator() {
return num1 + num2;
}
};
class subNum : public Calculator
{
public:
float getCalculator() {
return num1 - num2;
}
};
class mulNum : public Calculator
{
public:
float getCalculator() {
return num1 * num2;
}
};
class divNum : public Calculator
{
public:
float getCalculator() {
return num1 / num2;
}
};
int main() {
//加
addNum add;
add.num1 = 5;
add.num2 = 10;
cout << add.num1 << "+" << add.num2 << "=" << add.getCalculator() << endl;
//减
subNum sub;
sub.num1 = 5;
sub.num2 = 10;
cout << sub.num1 << "-" << sub.num2 << "=" << sub.getCalculator() << endl;
//乘
mulNum mul;
mul.num1 = 5;
mul.num2 = 10;
cout << mul.num1 << "*" << mul.num2 << "=" << mul.getCalculator() << endl;
//除
divNum div;
div.num1 = 5;
div.num2 = 10;
cout << div.num1 << "/" << div.num2 << "=" << div.getCalculator() << endl;
}
多态的优点:
- 代码组织结构清晰
- 可读性强
- 利于前期和后期的扩展以及维护