利用运算符重载完成类的对象之间的四则运算,要求分别用类的成员函数和友元函数实现
时间: 2024-10-24 15:17:14 浏览: 42
运算符重载是一种特殊的技术,它允许程序员自定义已有的运算符如 +、-、*、/ 等在特定类中的行为。这种功能主要用于提升程序的可读性和简洁性。以下是利用类的成员函数和友元函数分别实现四则运算的简单示例:
**利用类的成员函数实现**:
```cpp
class Number {
public:
// 定义基本数据类型和构造函数
int value;
Number(int v) : value(v) {}
// 运算符重载,成员函数实现加法
Number operator+(const Number &num) const {
return Number(value + num.value);
}
// 类似的重载其他运算符,例如减法、乘法、除法
friend Number operator-(const Number &num1, const Number &num2);
friend Number operator*(const Number &num1, const Number &num2);
friend Number operator/(const Number &num1, const Number &num2);
};
// 实现友元函数,这里是减法例子
Number operator-(const Number &num1, const Number &num2) {
return Number(num1.value - num2.value);
}
```
**利用友元函数实现**:
```cpp
class Number {
public:
int value;
Number(int v) : value(v) {}
};
class OperatorFriend {
public:
// 友元函数,这里实现了加法
static Number operator+(const Number &num1, const Number &num2) {
return Number(num1.value + num2.value);
}
// 类似地,你可以添加友元函数重载其他运算符
// ... (减法、乘法、除法)
};
// 在Number类中使用友元函数
Number result = OperatorFriend::operator+(number1, number2);
```
阅读全文