在c ++标准中说
前缀一元运算符应由非静态成员实现 函数(9.3)没有参数或非成员函数有一个 参数。
但是没有关于postfix运算符重载的一些信息。
答案 0 :(得分:1)
关于后缀运算符(13.5.7)
名为operator ++的用户定义函数实现了前缀和 postfix ++运算符。如果此函数是没有的成员函数 参数,或具有一个或类参数的非成员函数 枚举类型,它定义前缀增量运算符++ for 那种类型的对象。如果函数是一个成员函数 参数(应为int类型)或非成员函数 它定义了两个参数(第二个参数应为int类型) 用于该类型对象的后缀增量运算符++。当。。。的时候 后缀增量是使用++运算符调用的结果 int参数的值为零。
答案 1 :(得分:0)
operator--
和operator++
不常见,因为它们以前缀和后缀形式存在,因此需要做一些事情来区分这两者。正如您已经注意到的那样,他们决定基于后缀形式接收额外(未使用)参数来区分。
你可以重载其他后缀运算符(例如operator[]
,operator()
和operator->
),但是你不需要做任何特殊的重载它们,因为它们只存在于后缀中形式。