操作符的重載有一些規(guī)則: 1. 重載操作符必須具有一個類類型或枚舉類型操作數(shù)。這條規(guī)則強制重載操作符不能重新定義用于內(nèi)置類型對象的操作符的含義。 如:int operator+(int, int), 不可以 2. 為類設(shè)計重載操作符的時候,必須選擇是將操作符設(shè)置為類成員還是普通非成員函數(shù)。在某些情況下,程序沒有選擇,操作符必須是成員;在另外一些情況下,有些經(jīng)驗可以指導(dǎo)我們做出決定。下面是一些指導(dǎo): a. 賦值(=),下標(biāo)([]),調(diào)用(())和成員訪問箭頭(->)等操作符必須定義為成員,將這些操作符定義為非成員函數(shù)將在編譯時標(biāo)記為錯誤。 b. 像賦值一樣,復(fù)合賦值操作符通常應(yīng)定義為類的成員。與賦值不同的是,不一定非得這樣做,如果定義為非成員復(fù)合賦值操作符,不會出現(xiàn)編譯錯誤。 c. 改變對象狀態(tài)或與給定類型緊密聯(lián)系的其他一些操作符,如自增,自減和解引用,通常應(yīng)定義為類成員。 d 對稱的操作符,如算術(shù)操作符,相等操作符,關(guān)系操作符和位操作符,最好定義為普通非成員函數(shù)。 e io操作符必須定義為非成員函數(shù),重載為類的友元。