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