C++的問題 關於 operator 的編譯問題

請問 為什麼可以直接這樣改寫成x+y呢?? 現在 operator 僅幾診視朋友函數 不是應該寫成 operator +(x,y); 這樣子嗎?? 實在是搞不太懂 operator 判斷的點?? 就像 operator [](int a) 可以是 a[2] 這樣的輸入 書上完全沒提到位什麼可以這樣寫=口=? 這是原本的定義嗎?? 還是 編譯的時候 自動會轉變呢? 有規則可循嗎?? class aa{ public: int a; friend aa operator +(aa x,aa y) } aa operator +(aa x,aa y) { return (aa.x+aa.y)/2 } void... show more 請問 為什麼可以直接這樣改寫成x+y呢??
現在 operator 僅幾診視朋友函數
不是應該寫成 operator +(x,y); 這樣子嗎??
實在是搞不太懂 operator 判斷的點??
就像 operator [](int a) 可以是 a[2] 這樣的輸入
書上完全沒提到位什麼可以這樣寫=口=?
這是原本的定義嗎??
還是 編譯的時候 自動會轉變呢?
有規則可循嗎??

class aa{
public:
int a;

friend aa operator +(aa x,aa y)
}

aa operator +(aa x,aa y)
{
return (aa.x+aa.y)/2
}

void main()
{
aa x;
aa y;
x+y;

}
2 answers 2