21xrx.com
2025-03-30 23:38:43 Sunday
文章检索 我的文章 写文章
用C++继承实现计算器代码
2023-07-01 19:17:35 深夜i     16     0
C++ 继承 计算器 代码 实现

随着现代社会的发展,计算器已经成为了人们生活和工作中必不可少的电子产品之一。在这个背景下,学习计算器的工作原理和设计就变得尤为重要。而其中,一种常用的方法就是使用C++继承实现计算器的代码。

具体来说,C++继承是一种面向对象编程的方式,可以让代码具有更好的可维护性和可扩展性。在计算器的例子中,我们可以定义一个基类,包含计算器中可能用到的通用属性和方法,比如计算、清空等。然后,我们可以定义多个派生类,分别表示不同的计算器类型,比如普通计算器、科学计算器等。这些派生类可以继承基类的属性和方法,同时可以添加自己的特有属性和方法,以区分不同的计算器类型。

下面是一个简单的C++继承实现计算器代码的例子:

#include <iostream>
using namespace std;
// 计算器基类
class Calculator {
public:
 Calculator();
 virtual double calculate(double num1, double num2);
 void clear();
private:
 double num1_;
 double num2_;
};
// 普通计算器类
class StandardCalculator : public Calculator {
public:
 double add(double num1, double num2);
 double subtract(double num1, double num2);
 double multiply(double num1, double num2);
 double divide(double num1, double num2);
};
// 科学计算器类
class ScientificCalculator : public Calculator {
public:
 double sin(double num);
 double cos(double num);
 double tan(double num);
 double log(double num);
};
// 实现计算器基类
Calculator::Calculator()
 : num1_{0.0}, num2_{0.0}
{}
double Calculator::calculate(double num1, double num2)
 num1_ = num1;
 num2_ = num2;
 return 0.0;
void Calculator::clear()
 num1_ = 0.0;
 num2_ = 0.0;
// 实现普通计算器类
double StandardCalculator::add(double num1, double num2) {
 return num1 + num2;
}
double StandardCalculator::subtract(double num1, double num2)
 return num1 - num2;
double StandardCalculator::multiply(double num1, double num2) {
 return num1 * num2;
}
double StandardCalculator::divide(double num1, double num2) {
 if (num2 == 0.0)
  cout << "Error: divide by zero" << endl;
  return 0.0;
  else
  return num1 / num2;
 
}
// 实现科学计算器类
double ScientificCalculator::sin(double num) {
 return std::sin(num);
}
double ScientificCalculator::cos(double num) {
 return std::cos(num);
}
double ScientificCalculator::tan(double num) {
 return std::tan(num);
}
double ScientificCalculator::log(double num) {
 return std::log(num);
}
// 测试代码
int main() {
 StandardCalculator std_calculator;
 ScientificCalculator sci_calculator;
 std::cout << "2 + 3 = " << std_calculator.add(2, 3) << std::endl;
 std::cout << "5 - 4 = " << std_calculator.subtract(5, 4) << std::endl;
 std::cout << "2 * 3 = " << std_calculator.multiply(2, 3) << std::endl;
 std::cout << "6 / 2 = " << std_calculator.divide(6, 2) << std::endl;
 std::cout << "sin(0) = " << sci_calculator.sin(0) << std::endl;
 std::cout << "cos(0) = " << sci_calculator.cos(0) << std::endl;
 std::cout << "tan(0) = " << sci_calculator.tan(0) << std::endl;
 std::cout << "log(1) = " << sci_calculator.log(1) << std::endl;
 return 0;
}

在上面的例子中,我们首先定义了一个Calculator基类,包含了两个数值属性num1_和num2_,以及calculate和clear两个基本方法。接着,我们定义了两个派生类StandardCalculator和ScientificCalculator,分别表示普通计算器和科学计算器。这两个派生类分别继承了基类的属性和方法,并提供了自己特有的计算方法。

最后,我们在主函数中进行测试,实例化了一个StandardCalculator对象std_calculator和一个ScientificCalculator对象sci_calculator,并分别调用了它们的方法进行计算。

在实际开发中,可以根据需要添加更多的派生类和方法,使代码更加丰富和实用。同时,通过使用C++继承实现计算器代码,也可以方便地进行代码组织、维护和扩展。

  
  

评论区