如何用C++编写一个程序,实现两个正整数的加法、减法、乘法和除法运算,并确保所有结果都在整数范围内,同时处理可能的除数为零的情况?
时间: 2024-10-19 09:10:56 浏览: 29
在C++中,你可以创建一个简单的类来封装这些操作。首先,我们定义一个`ArithmeticOperations`类,它有私有变量表示两个整数,以及公共成员函数来进行加、减、乘、除的操作。我们将使用`try-catch`块来处理可能的除以零错误:
```cpp
#include <iostream>
class ArithmeticOperations {
private:
int num1;
int num2;
public:
// 构造函数接受两个参数
ArithmeticOperations(int a, int b) : num1(a), num2(b) {}
// 加法
int add() { return num1 + num2; }
// 减法
int subtract() { return num1 - num2; }
// 乘法
int multiply() { return num1 * num2; }
// 除法,处理除以零情况
int divide() try {
if (num2 != 0)
return num1 / num2;
else
throw std::invalid_argument("Division by zero is not allowed.");
} catch (const std::exception& e) {
std::cerr << "Error: " << e.what() << '\n';
return 0; // 返回默认值或抛出异常后的处理
}
};
int main() {
// 示例用法
ArithmeticOperations operations(10, 5);
std::cout << "Addition: " << operations.add() << '\n';
std::cout << "Subtraction: " << operations.subtract() << '\n';
std::cout << "Multiplication: " << operations.multiply() << '\n';
try {
std::cout << "Division: " << operations.divide() << '\n';
} catch (std::exception& e) {
std::cerr << e.what() << '\n';
}
return 0;
}
```
在这个例子中,当你试图用`divide()`方法除以零时,会抛出一个`std::invalid_argument`异常,并捕获它来显示错误信息。
阅读全文