当前位置:实例文章 » JAVA Web实例» [文章]【C++】多态案例— —计算器类

【C++】多态案例— —计算器类

发布人:shili8 发布时间:2025-02-14 01:41 阅读次数:0

**多态案例——计算器类**

在面向对象编程中,多态是指一个方法或函数可以有多种不同的行为,这取决于它的上下文。计算器类是一个经典的例子,它可以实现多态。

### 计算器类设计我们将设计一个简单的计算器类,支持基本的四则运算:加、减、乘、除。

#### 基本结构

cppclass Calculator {
public:
 virtual double calculate(double num1, double num2) =0; // 抽象方法};


在这个例子中,我们定义了一个抽象类 `Calculator`,它包含一个纯虚函数 `calculate`。这个函数将用于计算两个数字的结果。

#### 子类设计我们将创建四个子类,每个子类负责一种具体的运算:

cppclass Adder : public Calculator {
public:
 double calculate(double num1, double num2) override {
 return num1 + num2;
 }
};

class Subber : public Calculator {
public:
 double calculate(double num1, double num2) override {
 return num1 - num2;
 }
};

class Multiplier : public Calculator {
public:
 double calculate(double num1, double num2) override {
 return num1 * num2;
 }
};

class Divider : public Calculator {
public:
 double calculate(double num1, double num2) override {
 if (num2 ==0) {
 throw std::runtime_error("Cannot divide by zero!");
 }
 return num1 / num2;
 }
};


每个子类都实现了 `calculate` 函数,负责一种具体的运算。

### 多态示例现在,我们可以使用多态来计算不同类型的结果:

cppint main() {
 Calculator* adder = new Adder();
 Calculator* subber = new Subber();
 Calculator* multiplier = new Multiplier();
 Calculator* divider = new Divider();

 double result1 = adder->calculate(5,3);
 double result2 = subber->calculate(10,4);
 double result3 = multiplier->calculate(7,2);
 double result4 = divider->calculate(9,3);

 std::cout << "Add: " << result1 << std::endl;
 std::cout << "Subtract: " << result2 << std::endl;
 std::cout << "Multiply: " << result3 << std::endl;
 std::cout << "Divide: " << result4 << std::endl;

 delete adder;
 delete subber;
 delete multiplier;
 delete divider;

 return0;
}


在这个例子中,我们创建了四个 `Calculator` 对象,每个对象都代表一种具体的运算。然后,我们使用多态来计算不同类型的结果。

### 总结在本文中,我们设计了一个简单的计算器类,支持基本的四则运算。我们使用多态来实现不同的运算,并展示了如何使用多态来计算不同类型的结果。

相关标签:算法c++java开发语言
其他信息

其他资源

Top