C ++程序重载一元预减运算符,并为“ =”赋值运算符提供支持
阅读:运算符重载及其规则
要实现运算符重载,我们需要使用“operator”关键字。为了给运算符分配额外的任务,我们需要实现一个功能。这将提供便利以最自然的形式编写表达式。
例如:
S1是类样本的对象,则我们这样使用:S2=--S1;
看程序:
using namespace std;
#include <iostream>
class Sample
{
private:
int count;
public:
//默认构造函数
Sample()
{ count = 0;}
//参数化的构造函数
Sample(int c)
{ count = c;}
//操作符重载,返回对象
Sample operator--()
{
Sample temp;
temp.count = --count;
return temp;
}
//打印值
void printValue()
{
cout<<"Value of count : "<<count<<endl;
}
};
int main(){
int i = 0;
//对象声明
Sample S1(100), S2;
for(i=0; i< 5; i++)
{
//调用运算符重载
//在其他对象中分配值
S2 = --S1;
cout<<"S1 :"<<endl;
S1.printValue();
cout<<"S2 :"<<endl;
S2.printValue();
}
return 0;
}输出结果
S1 : Value of count : 99 S2 : Value of count : 99 S1 : Value of count : 98 S2 : Value of count : 98 S1 : Value of count : 97 S2 : Value of count : 97 S1 : Value of count : 96 S2 : Value of count : 96 S1 : Value of count : 95 S2 : Value of count : 95
在此程序中,我们创建了一个名为Sample的类。它包含一个数据成员值。并且我们实现了一个功能,可以在=赋值运算符的支持下使预减运算符超载。
我们不能将后减与这种运算符重载方法一起使用。
我们也可以使用以下语句代替S2=--S1:S2=S1.operator-();