首页 > 试题广场 >

如果定义了一个类myclass, 则为myclass类对象以

[单选题]
如果定义了一个类myclass, 则为myclass类对象以成员函数形式重载后++运算符的声明应该是:
  • myclass operator++()
  • myclass operator++(int)
  • myclass &operator++()
  • myclass &operator(int)
重载前置++运算符声明:myclass &operator++();// ++i

重载后置++运算符声明:myclass operator++(int);// i++

发表于 2022-03-26 12:04:18 回复(0)
因为是后置++,先返回原来的值,所以返回值不能为引用,然后再++ ,operator(int)
发表于 2021-02-04 21:02:54 回复(1)

@XuuuMeng 的答案不对.
因为, ++i 或者 ++一个(重载了前++)对象, 应当返回一个引用, 以满足链式运算.
即:

int i = 0;
std::cout << ++++i << std::endl; //允许
std::cout << i++++ << std::endl; //不允许,因为(i++)返回的是一个右值
发表于 2020-11-13 15:30:02 回复(0)
为什么 C 不对? 前置++ ?

发表于 2022-01-13 09:21:11 回复(0)
前置++∶myclass &operator++() 后置++∶myclass operatore++(int) int占位符用来区分前置和后置++ 后置++在一些情况下可以调用前置++来实现
发表于 2023-03-08 12:10:33 回复(0)
<p>运算符重载函数说明为类的成员函数格式:&lt;类名&gt; operator&lt;运算符&gt;(参数表)</p>
发表于 2020-08-04 23:18:08 回复(0)
c应该是对的
发表于 2022-04-01 23:26:32 回复(1)
operator++(int) //int 代表占位参数,可以用于区分前置和后置递增

myclass& operator++() // 前置递增 ++i;
myclass operator++(int)//后置递增,i++;
发表于 2022-08-16 16:20:12 回复(0)
重载前置++运算符声明:myclass &operator++();// ++i

重载后置++运算符声明:myclass operator++(int);// i++
发表于 2022-07-11 20:08:31 回复(0)
<p>所以选c?</p>
发表于 2020-12-10 08:57:07 回复(0)
<p>myclass a;</p><p>++a:前缀++,选A</p><p>a++:后缀++,选B</p><p>题目中的后++应该指的是后缀++</p><p>参考</p>
发表于 2020-10-11 12:29:06 回复(1)