定义成员函数重载运算符“+”,使之实现两个课程对象的学时(period)相加。定义友元函数重载运算符“=-”,使之实现判断两个课程对象是否相同,即课程编号(id)相同。
时间: 2024-09-15 11:13:21 浏览: 46
C++运算符重载 成员函数与友元函数详解
5星 · 资源好评率100%
在C++中,为了定义成员函数重载运算符`+`和友元函数重载运算符`==-`,你需要创建一个类,比如叫做`Course`,并在这两个操作符上提供特定的实现。
首先,定义成员函数重载加法`+`:
```cpp
class Course {
public:
// 定义课程的基本属性,如id和period
int id;
int period;
// 重载加法运算符+
Course operator+(const Course& other) {
Course result;
result.id = this->id + other.id; // 如果需要考虑id,此处加上
result.period = this->period + other.period;
return result;
}
};
```
在这个例子中,如果两个`Course`对象想要按照学时相加,就直接将它们的`period`字段相加。
接下来,定义友元函数重载等于运算符`==`,因为`==-`是一个错误的语法,我们将其理解为检查两个课程是否完全相同,包括`id`:
```cpp
// 将operator==声明为这个类的朋友,使得它可以访问私有数据
bool operator==(const Course& other) const {
return (this->id == other.id) && (this->period == other.period);
}
```
现在你可以这样使用这两个重载的运算符:
```cpp
Course c1(1, 50);
Course c2(2, 60);
Course sum = c1 + c2; // 相加学时
if (c1 == c2) { // 检查课程是否相同
cout << "Courses are the same." << endl;
} else {
cout << "Courses are different." << endl;
}
```
阅读全文