您的位置:首页 > 编程语言 > C语言/C++

C++友元函数重载"++"和"--"运算符

2016-04-19 23:31 357 查看
代码:

#include <iostream>
#include <cstring>

using namespace std;

class one{
public:
one(int i);
void print();
friend one operator++(one&);
friend one operator++(one&,int);

private:
int i;
};

one::one(int I){
i = I;
}

void one::print(){
cout<<"i="<<i<<endl;
}

one operator++(one &op){
++op.i;
return op;
}

one operator++(one &op,int){
one temp(op);
op.i++;
return temp;
}

int main(){
one obj1(1),obj2(100);
obj1.print();
(++obj1).print();//隐式调用
(obj1++).print();
obj1.print();

(operator++(obj2)).print();//显式调用
(operator++(obj2,1)).print();//此处的参数1可以取任意整数(int)
obj2.print();

return 0;
}


输出:

i=1
i=2
i=2
i=3
i=101
i=101
i=102


分析:

前缀方式和后缀方式重载函数不同,以参数int区分
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: