• 网易云课堂_C++开发入门到精通_章节4:运算符重载


    课时23运算符重载

    运算符重载

    重载赋值运算符

    	Person& Person::operator=(const Person& other)
    	{
    		//检查自赋值
    		if (this == &other)
    		{
    			return *this;
    		}
    		//释放原有的内存资源
    		delete[]m_data;
    
    		int length = strlen(other.m_data);
    		m_data = new char[length + 1];
    		strcpy(m_data, other.m_data);
    		//返回本对象的引用
    		return *this;
    	}
    

    课时25自增运算符重载

    运算符重载

    前增量与后增量的区别

    使用前增量时,对对象(操作数)进行增量修改,然后再返回该对象

    使用后增量时,必须在增量之前返回原有的对象值

    class Increase
    {
    public:
    	Increase(int x) :value(x)
    	{
    
    	}
    	Increase& operator ++();//前增量
    	Increase operator ++(int);//后增量
    private:
    	int value;
    };
    

    ++的成员形式的重载

    Increase& Increase::operator ++()//前增量
    {
    	value++;//先增量
    	return *this;//再返回有对象
    }
    
    Increase Increase::operator ++(int)//后增量
    {
    	Increase temp(*this);//临时对象存放原有对象值
    	value++;//原有对象增量修改
    	return temp;//返回原有对象值
    }
    
  • 相关阅读:
    bzoj1467 Pku3243 clever Y
    bzoj2242 [SDOI2011]计算器
    卡特兰数
    洛谷P1290 欧几里得的游戏
    bzoj2277 [Poi2011]Strongbox
    poj2406 Power Strings
    Codeforces 892 D.Gluttony
    Codeforces 892 C.Pride
    Codeforces 892 B.Wrath
    Codeforces 892 A.Greed
  • 原文地址:https://www.cnblogs.com/denggelin/p/6200542.html
Copyright © 2020-2023  润新知