• 成员函数、友元函数++前缀后缀


    #include<iostream> 
    using namespace std;  
    
    class over
    {
    	int i1 , i2 ,i3;
    
    public:
    	void init(int I1=0 , int I2 =0, int I3=0);
    	void print();
    
    public:
    	over operator ++();//前缀
    	over operator++(int);//后缀
    
    	friend over operator--(over &);//友元前缀
    	friend over operator--(over & , int );//友元后缀
    };
    
    void over::init(int I1 , int I2, int I3)
    {
    	i1 = I1 ;
    	i2 = I2 ;
    	i3 = I3 ;
    }
    
    void over::print()
    {
    	cout<<"i1 = "<<i1<<" , i2 ="<<i2<<" , i3 ="<<i3<<endl;
    }
    over over::operator++()//成员函数-前缀
    {
    	++i1 ;
    	++i2 ;
    	++i3 ;
    	return *this ;
    }
    over over::operator++(int )//成员函数-后缀
    {
    	i1++;
    	i2++;
    	i3++;
    	return *this ;
    }
    over operator--(over & op)//友元 前缀
    {
    	--op.i1 ;
    	--op.i2 ;
    	--op.i3 ;
    	return op ;
    }
    over operator--(over & op , int )//友元后缀
    {
    	op.i1-- ;
    	op.i2-- ;
    	op.i3-- ;
    	return op ;
    }
    int main()
    {   
    	 over  ob1 , ob2 , ob3 , ob4 ;
    	 ob1.init();
    	 ob2.init(7,7,7);
    	 ob3.init(11,11,11);
    	 ob4.init(13,13,13);
    
    	 ++ob1 ;//隐式调用over operator++()
    	 ob2++;//隐式调用over operator++(int)
    	 --ob3;//隐式调用over operator--(over&)
    	 ob4--;//隐式调用over operator--(over& ,int)
    
    	 ob1.print();
    	 ob2.print();
    	 ob3.print();
    	 ob4.print();
    	  
    	 cout<<"-------------------------"<<endl;
    
    	 ob1.operator++();//显示调用,++ob1
    	 ob2.operator++(0);//显示调用ob2++;
    	 operator--(ob3);//显示调用--ob3;
    	 operator--(ob4,0);//显示调用ob4--;
    
    	 ob1.print();
    	 ob2.print();
    	 ob3.print();
    	 ob4.print();
    
    	getchar();
    	return 0 ; 
    }
    

      

  • 相关阅读:
    JDBC
    两道关于回溯法,分支限界法的算法题
    旅行售货员问题
    jdbc学习
    mysql简单练习
    取会邮件客户端中的密码
    触发器的使用
    事务的数据一致性测试
    读取其他软件listview控件的内容
    sqlserver2008 ,只能选C盘目录,不能选其它盘目录
  • 原文地址:https://www.cnblogs.com/dot-dot-123/p/3640739.html
Copyright © 2020-2023  润新知