C++中++符號的前置和後置的重載格式

短博客,記錄下++符號前後置的運算符重載的代碼格式,方便以後取用。


舉例子來說明。假設有一個複數的類:

class Complex {
    private:
        double real;
        double image;
    public:
        blablabla......
}

Complex& Complex::operator ++() {  // 前置
    real += 1;
    image += 1;
    return *this;
}

Complex Complex::operator ++(int) {  // 後置
    Complex before = *this;
    real += 1;
    image += 1;
    return before;
}

注意點:
1、前置返回的是引用,後置返回的是臨時對象。因爲後置的時候原來的對象已經被++改變了。前置用引用則是爲了不產生臨時變量,減少內存的消耗而已。

2、注意後置的函數聲明,參數列表中比前置多了一個int,這裏似乎是不符合運算符重載的定義的,++是屬於一元運算符,理應後置時沒有右邊的數作爲參數進行傳入。所以說,這裏的int其實是作爲區分前後置的標誌而已,在函數體裏面並沒有直接地用到。作爲一個規則把它記住就好。

3、類似的,- -號也應該是這樣進行重載。

發佈了40 篇原創文章 · 獲贊 68 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章