• 单目运算符重载 ++


    ++运算符重载有前置和后置两种,所以要定义一个参数 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;
    }




  • 相关阅读:
    什么是经验
    Linux驱动开启调试信息
    insecticide|contradictions| at large|delay doing|
    timber|stain|compensate|
    whip|resist|patch|intimate|
    chop|divorce|harsh|mutual|compel|
    crack|erosion|strip|
    stack|session|fuss|anniversary
    abrupt|promising
    nevertheless|magnificent |prosperous|
  • 原文地址:https://www.cnblogs.com/wsq724439564/p/3258157.html
Copyright © 2020-2023  润新知