運(yùn)算符重載時(shí)要遵循以下規(guī)則:
成員函數(shù)運(yùn)算符
當(dāng)運(yùn)算符重載為類的成員函數(shù)時(shí),函數(shù)的參數(shù)個(gè)數(shù)比原來的操作數(shù)要少一個(gè)(后置單目運(yùn)算符除外),這是因?yàn)槌蓡T函數(shù)用this指針隱式地訪問了類的一個(gè)對象,它充當(dāng)了運(yùn)算符函數(shù)最左邊的操作數(shù)。因此:
友元函數(shù)運(yùn)算符
當(dāng)運(yùn)算符重載為類的友元函數(shù)時(shí),由于沒有隱含的this指針,因此操作數(shù)的個(gè)數(shù)沒有變化,所有的操作數(shù)都必須通過函數(shù)的形參進(jìn)行傳遞,函數(shù)的參數(shù)與操作數(shù)自左至右一一對應(yīng)。
兩種重載形式的比較
在多數(shù)情況下,將運(yùn)算符重載為類的成員函數(shù)和類的友元函數(shù)都是可以的。但成員函數(shù)運(yùn)算符與友元函數(shù)運(yùn)算符也具有各自的一些特點(diǎn):