我遇到問題。作爲成員函數,我實現了一個自定義的operator*
。C++運算符重載看不到其他運算符
在報頭:
class Matrix
{
public:
Matrix operator*(int arg); //(1)
...
}
Matrix operator*(int a, const Matrix& m)
{
return m * a; //(2)
}
(1)I可在main.cpp中做到這一點:
Matrix a = Matrix::GetRandom.....
Matrix b = a * 2;
(2)在此行中,我發現了一個編譯器錯誤:
IntelliSense: no operator "*" matches these operandsnoperand types are: const Matrix * int
我該如何解決?
你也可以寫兩個運營商(非會員)友元函數'朋友矩陣運算符(矩陣,INT);'和'朋友矩陣運算部(INT,矩陣);' 。這樣既保持對稱又保持彼此相鄰。 – dyp