[問題] Operator Overloading 的問題
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
( 未必需要依照此格式,文章條理清楚即可 )
遇到的問題: (題意請描述清楚)
在 C++ Primer 4/e 中文版第 512 頁下面有提到
「assignment(=)、subscribe([])、call(())、arrow(->)運算子必須定義為成員。
如果不這麼做,編譯期會出錯」
想請問一下,為什麼會有這樣的強制規定呢?
譬如說,它的意思是
class test
{
public:
test &operator=(test &t);
};
而不能寫
test & operator(test &1, test &2);
// VC++ : error C2801: operator= 必須是非靜態成員
這樣吧?但不知道為什麼要這麼規定?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.171.46
※ 編輯: james732 來自: 140.117.171.46 (04/15 17:24)
→
04/15 19:59, , 1F
04/15 19:59, 1F
→
04/15 20:16, , 2F
04/15 20:16, 2F
推
04/16 00:44, , 3F
04/16 00:44, 3F
→
04/16 00:45, , 4F
04/16 00:45, 4F
→
04/16 00:45, , 5F
04/16 00:45, 5F
推
04/16 00:47, , 6F
04/16 00:47, 6F
→
04/16 00:48, , 7F
04/16 00:48, 7F
→
04/16 00:48, , 8F
04/16 00:48, 8F