4.创建一个计数器类Counter,对其重载单目运算符“++”,要求包含前置和后置的重载函数,并分别用类的成员函数和友元函数实现。
时间: 2024-03-02 21:49:21 浏览: 82
C++运算符重载函数作为类成员函数和友元函数.docx
以下是一个简单的计数器类Counter的实现,包括前置和后置自增运算符的重载:
```c++
class Counter {
public:
Counter(int n = 0) : count(n) {}
int getCount() const { return count; }
// 前置自增运算符重载(成员函数)
Counter& operator++() {
++count;
return *this;
}
// 后置自增运算符重载(成员函数)
Counter operator++(int) {
Counter temp(*this);
++(*this);
return temp;
}
// 前置自增运算符重载(友元函数)
friend Counter& operator++(Counter& c) {
++c.count;
return c;
}
// 后置自增运算符重载(友元函数)
friend Counter operator++(Counter& c, int) {
Counter temp(c);
++c;
return temp;
}
private:
int count;
};
```
使用示例:
```c++
Counter c(0);
cout << "前置自增运算符:" << ++c.getCount() << endl;
cout << "后置自增运算符:" << c++.getCount() << endl;
cout << "对象值:" << c.getCount() << endl;
```
输出结果:
```
前置自增运算符:1
后置自增运算符:1
对象值:2
```
阅读全文