35.C++增1减1运算符的重载
来源:互联网 发布:信息数据采集情况汇报 编辑:程序博客网 时间:2024/06/06 07:44
//使用运算符“++”重载为类的成员函数#include <iostream>class Number{public: Number(int n=0)//构造函数 { num=n; } int operator++();//前置++n Number operator++(int );//后置n++ void print() { std::cout<<"num="<<num<<std::endl; }private: int num;};//前置++nint Number::operator++(){ ++num; return num;}//后置n++Number Number::operator++(int)//不用给出形参名{ Number temp; temp.num=num++; return temp;}int main(int argc, const char * argv[]){ Number m(20); Number n(30),p; int k=++m; std::cout<<k<<std::endl;//21 m.print();//num=21 p=n++; p.print();//num=30 n.print();//num=31 return 0;}
//使用运算符“++”重载为类的友元函数#include <iostream>class Number{public: Number(int n=0)//构造函数 { num=n; } friend int operator++(Number& x);//前置++n friend Number operator++(Number& ,int);//后置n++ void print(){ std::cout<<"num="<<num<<std::endl;} private: int num;};int operator++(Number& x)//前置++n{ ++x.num; return x.num;}Number operator++(Number& x,int ){ Number temp; temp.num=x.num++; return temp;}int main(int argc, const char *argv[]){ Number m(20); Number n(30),p; int k=++m; std::cout<<k<<std::endl;//21 m.print(); p=n++; p.print(); n.print(); return 0;}