21xrx.com
2024-12-22 20:40:57 Sunday
登录
文章检索 我的文章 写文章
C++继承实现计算器代码
2023-07-12 15:33:34 深夜i     --     --
C++ 继承 计算器代码 实现 编程

在编程过程中,继承的概念是非常重要的,很多时候我们会将一个类继承于另一个类,以便向已存在的类添加额外的功能或属性。本文将用C++语言来介绍如何使用继承实现一个简单的计算器代码。

首先,我们需要创建两个类,一个是计算器类,另一个是操作数类。其中,计算器类包含加、减、乘、除等基本运算方法,操作数类则负责操作数的输入和输出。

代码如下:


#include <iostream>

class Calculator {

public:

  double add(double a, double b);

  double sub(double a, double b);

  double mul(double a, double b);

  double div(double a, double b);

};

class Operand {

public:

  int getOperand();

  void printOperand(double operand);

};

上述代码中,我们定义了四个基本运算方法,也就是计算器类的功能。这里我们只是定义了这些方法,具体的计算方法将在之后进行实现。另一个操作数类包含两个方法,一个是获取操作数,一个是输出操作数。

接下来,我们需要用继承的方式将操作数类应用于计算器类。具体代码如下:


class CalculatorWithOperand : public Calculator, public Operand

;

int Operand::getOperand()

  int operand;

  std::cout << "请输入操作数:" << std::endl;

  std::cin >> operand;

  return operand;

void Operand::printOperand(double operand)

  std::cout << "操作数是:" << operand << std::endl;

double Calculator::add(double a, double b) {

  return a + b;

}

double Calculator::sub(double a, double b)

  return a - b;

double Calculator::mul(double a, double b) {

  return a * b;

}

double Calculator::div(double a, double b)

  return a / b;

在上述代码中,我们将操作数类和计算器类进行了继承,并在操作数类中增加了获取操作数和输出操作数的方法。具体实现中,我们首先需要在操作数类中声明这两个方法,然后在实现中调用这两个方法,此时就可以实现计算器的输入和输出功能了。

最后,我们需要将上述方法整合成一个完整的计算器。具体代码如下:


int main() {

  CalculatorWithOperand calculator;

  int a = calculator.getOperand();

  int b = calculator.getOperand();

  double result = calculator.add(a, b);

  calculator.printOperand(result);

  result = calculator.sub(a, b);

  calculator.printOperand(result);

  result = calculator.mul(a, b);

  calculator.printOperand(result);

  result = calculator.div(a, b);

  calculator.printOperand(result);

  return 0;

}

在上述代码中,我们先实例化了一个CalculatorWithOperand对象,利用操作数类中的getOperand方法获取用户输入的两个操作数,然后计算器类中的四个方法进行对应的计算,并使用Operand类中的printOperand方法输出结果。

综上所述,我们利用C++的继承实现了一个简单的计算器。利用继承可以使你的代码更加简洁,易于维护,也方便你在以后扩展你的类和方法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复