可能重复:
Why are some operators in C++ only allowed to be overloaded as member functions?
为什么operator()[] - > =必须是非静态成员?为什么不能成为朋友呢?
答案 0 :(得分:2)
因为你必须在一个类的实例上调用它。以 - >为例运营商。你会如何建议获得一个指向类本身的指针?这没什么意义。
答案 1 :(得分:1)
因为它必须是非静态的。简单的设计决定。可能是因为C ++没有类对象的概念。