是否有可能重载postfix一元运算符除了++和 -

时间:2014-05-11 17:52:16

标签: c++ overloading operator-keyword

在c ++标准中说

  

前缀一元运算符应由非静态成员实现   函数(9.3)没有参数或非成员函数有一个   参数。

但是没有关于postfix运算符重载的一些信息。

2 个答案:

答案 0 :(得分:1)

关于后缀运算符(13.5.7)

  

名为operator ++的用户定义函数实现了前缀和   postfix ++运算符。如果此函数是没有的成员函数   参数,或具有一个或类参数的非成员函数   枚举类型,它定义前缀增量运算符++ for   那种类型的对象。如果函数是一个成员函数   参数(应为int类型)或非成员函数   它定义了两个参数(第二个参数应为int类型)   用于该类型对象的后缀增量运算符++。当。。。的时候   后缀增量是使用++运算符调用的结果   int参数的值为零。

答案 1 :(得分:0)

operator--operator++不常见,因为它们以前缀和后缀形式存在,因此需要做一些事情来区分这两者。正如您已经注意到的那样,他们决定基于后缀形式接收额外(未使用)参数来区分。

你可以重载其他后缀运算符(例如operator[]operator()operator->),但是你不需要做任何特殊的重载它们,因为它们只存在于后缀中形式。