C ++程序重载一元预增量运算符并为赋值运算符(=)提供支持

阅读:运算符重载及其规则

我们已经讨论了如何在C ++中重载pre-increment运算符?但是该程序不支持赋值运算符,即如果我们要将增量对象的值存储在另一个对象中,则不能。

在本文中,我们将了解如何重载预递增运算符并为“ =”赋值运算符提供支持?

例如:

S1是类样本的对象,则我们这样使用:S2 = ++ S1;

要实现运算符重载,我们需要使用“ operator”关键字。为了给运算符分配额外的任务,我们需要实现一个功能。这将提供便利以最自然的形式编写表达式。

看程序:

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;

//打印值 of S1 object

cout<<"S1 :"<<endl;

S1.printValue();

//打印值 of S2 object

cout<<"S2 :"<<endl;

S2.printValue();

}

return 0;    

}

输出结果

S1 :

Value of count : 101

S2 :

Value of count : 101

S1 :

Value of count : 102

S2 :

Value of count : 102

S1 :

Value of count : 103

S2 :

Value of count : 103

S1 :

Value of count : 104

S2 :

Value of count : 104

S1 :

Value of count : 105

S2 :

Value of count : 105

在此程序中,我们创建了一个名为Sample的类。它包含一个数据成员值。并且我们实现了一个在=(赋值运算符)的支持下使预递增运算符超载的功能。

我们不能通过这种运算符重载方法使用后增量。

我们也可以使用以下语句代替S2 = ++ S1:S2 = S1.operator ++();

以上是 C ++程序重载一元预增量运算符并为赋值运算符(=)提供支持 的全部内容, 来源链接: utcz.com/z/345276.html

回到顶部