zoukankan      html  css  js  c++  java
  • 一元运算符重载 前置和后置++ --(这种一般用成员函数来实现重载)

    #include <iostream>
    
    using namespace std;
    //实现一元运算符的前置重载
    class A
    {
    public:
    	friend A operator++(A &t1);
    public:
    	void setA(int a)
    	{
    		this->a=a;
    	}
    	void getA()
    	{
    		cout<<a<<endl;
    	}
    public:
    	A operator--()
    	{
    		this->a--;
    		return *this;
    	}
    private:
    	int a;
    	
    };
    
    A operator++(A &t1)//友元函数
    {
    	t1.a++;
    	return t1;
    }
    
    
    int main()
    {
    	A a1;
    	a1.setA(10);
    	a1.getA();
    
    	++a1;
    	a1.getA();
    
    	--a1;
    	a1.getA();
    	system("pause");
    	return 0;
    }
    

      这里注意类的成员函数的重载中的形参永远比友元函数的形参少一个!!!!!!!

    #include <iostream>
    
    using namespace std;
    //实现一元运算符的前置重载
    class A
    {
    public:
    	friend A operator++(A &t1);
    	//A operator++(A & t2,int)
    	friend A operator++(A &t2,int);
    public:
    	void setA(int a)
    	{
    		this->a=a;
    	}
    	void getA()
    	{
    		cout<<a<<endl;
    	}
    public:
    	A operator--()//前置--
    	{
    		this->a--;
    		return *this;
    	}
    	A operator--(int)//后置--
    	{
    		return * this;
    		this->a--;
    	}
    private:
    	int a;
    	
    };
    
    A operator++(A &t1)//前置++友元函数
    {
    	t1.a++;
    	return t1;
    }
    
    A operator++(A & t2,int)//后置++友元函数,先返回在改变,使用占位操作符
    {
    	return t2;
    	t2.a ++;
    }
    int main()
    {
    	A a1;
    	a1.setA(10);
    	a1.getA();
    
    	++a1;
    	a1.getA();
    
    	--a1;
    	a1.getA();
    
    	a1++;
    	a1.getA();
    
    	a1--;
    	a1.getA();
    	system("pause");
    	return 0;
    }
    

      前置的很特别哟

  • 相关阅读:
    Win10使用VMware虚拟机安装ubuntu
    算法资源清单
    JAVA Synchronized (三) volatile 与 synchronized 的比较
    JAVA Synchronized (二)
    Java多线程:线程状态以及wait(), notify(), notifyAll()
    Java中断机制
    Java throw与throws
    Java(Android)线程池
    JAVA interrupte中断线程的真正用途
    Java 守护线程
  • 原文地址:https://www.cnblogs.com/xiaochige/p/6582078.html
Copyright © 2011-2022 走看看