zoukankan      html  css  js  c++  java
  • 单目运算符重载 ++

    ++运算符重载有前置和后置两种,所以要定义一个参数 int来区分前置和后置,带int参数的代表后置,然后再后置函数里面调用前置函数,这样的话就保持了和前置函数一样的自增幅度。在前置函数里面要返回对象的引用,在后置函数里面返回一个对象的拷贝,而对对象进行自增。

    //单目运算符重载 ++ 
    #include<iostream>
    using namespace std;
    class Fraction
    {
    	private:
    		int den;
    		int num;
    		public:
    			Fraction(int d=1,int n=0):den(d),num(n)
    			{
    			}
    			//前置 prefix 
    			Fraction& operator++()
    			{
    				num+=den;
    				return *this;
    			}
    			//后置 postfix  加参数int区分。 
    			const Fraction operator ++(int)
    			{
    				Fraction old(*this); //把*this赋值给old  相当于 old=*this;这里是浅拷贝。 
    				++(*this);
    				return old; 
    			}
    	friend ostream &operator<<(ostream &out,const Fraction& x);
    };
    
    			ostream &operator<<(ostream &out,const Fraction&x)
    			{
    				out<<x.den<<" "<<x.num<<endl;
    				return out;
    			} 
    int main()
    {
    	Fraction b(1,1);
    	cout<<++b<<endl;
    	cout<<b++<<endl;
    	cout<<b<<endl;
    	cout<<++b<<endl;
    	cout<<"=============="<<endl;
    	b++;
    	cout<<b<<endl;
    	++b;
    	cout<<b<<endl; 
    	return 0;
    }




  • 相关阅读:
    第11章 规模化微服务
    第10章 康威定律和系统设计
    9.3静态数据的安全
    第9章 安全
    第八章 监控
    7.8拯救消费者驱动的测试
    第7章 测试
    使用Spring + Jedis集成Redis
    activiti工作流数据库表详细介绍 (23张表)
    Redis是什么?Redis数据库全解?
  • 原文地址:https://www.cnblogs.com/wsq724439564/p/3258157.html
Copyright © 2011-2022 走看看