创建一个计数器类Counter,对其重载单目运算符“++”,要求包含前置和后置的重载函数,并分别用类的成员函数和友元函数实现。
时间: 2024-02-24 22:57:42 浏览: 139
好的,可以的。下面是代码实现:
```c++
#include <iostream>
class Counter {
private:
int count;
public:
Counter() : count(0) {}
void operator++() { // 前置++
++count;
}
void operator++(int) { // 后置++
count++;
}
friend void operator--(Counter& c) { // 前置--
--c.count;
}
friend void operator--(Counter& c, int) { // 后置--
c.count--;
}
void display() const {
std::cout << "Counter count: " << count << std::endl;
}
};
int main() {
Counter c;
++c;
c.display();
c++;
c.display();
--c;
c.display();
c--;
c.display();
return 0;
}
```
运行结果:
```
Counter count: 1
Counter count: 2
Counter count: 1
Counter count: 0
```
在这个例子中,我们定义了一个计数器类Counter,它包括一个整型成员count,并重载了前置和后置++运算符。我们使用类的成员函数实现前置++和后置++,使用友元函数实现前置--和后置--。最后,在main函数中测试了这些重载运算符的功能。
阅读全文