关于重载后置++操作符与基本类型自带的不同的问题

来源:8-6 前置与后置操作符

qq_慕设计7103773

2020-04-02

int i{ 1 };
i = i++;

返回2。
如果是自定义的后置++,则返回老值。

T t{ 1.0,1.0 }
t = t++;

返回1.0,1.0。
这是怎么回事?请老师讲解。

写回答

1回答

quickzhao

2020-04-02

原则上课程之外的问题不做解答。这里的知识和课程中的内容有一定关系,可以用我们所学的知识解答清楚。你可以多看几次视频内容;首先

int i{ 1 };
i = i++;

的返回值你的理解应该有误,这里返回值是赋值表达式的返回值,不是2,是1;

你cout << (i=i++) << endl; 试试

T t{ 1.0,1.0 }
t = t++; 的问题利用我们课上的重载函数和赋值表达式的返回值的知识,我相信你可以自己解答了。

0
2
quickzhao
回复
qq_慕设计7103773
你仔细看下我们Complex的前置后置操作符重载,是可以做到的,后置是先返回临时对象,再+1,前置是先对值+1,然后将对象返回。
2020-04-03
共2条回复

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程