要实现运算符重载,我们需要使用‘operator’关键字。为了给运算符分配额外的任务,我们需要实现一个函数。这将为以最自然的形式编写表达式提供便利。
程序:
using namespace std; #include <iostream> class Sample { private: int count; public: //默认构造函数 Sample() { count = 0;} //参数化构造函数 Sample(int c) { count = c;} //重载运算符 void operator--() { --count;} //打印值 void printValue() { cout<<"Value of count : "<<count<<endl; } }; int main(){ int i = 0; //对象声明 Sample S1(100); for(i=0; i< 10; i++) { //将应用运算符重载 --S1; //S1--; //错误 S1.printValue(); } return 0; }
输出结果
Value of count : 99 Value of count : 98 Value of count : 97 Value of count : 96 Value of count : 95 Value of count : 94 Value of count : 93 Value of count : 92 Value of count : 91 Value of count : 90
在此程序中,有一个名为Sample的类,它包含一个数据成员值,并且我们实现了一个使pre-decrement运算符重载的函数。
--S1(一元预减重载运算符)将减小数据成员值的值。
但是,我们不能将后减与这种运算符重载方法一起使用。