首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为什么C++++不能通过编译呢?该如何解决

2012-03-19 
为什么C++++不能通过编译呢?(C++)++也通不过,无论VC还是devc++环境,编译提示needsl-value而++++C无论哪种

为什么C++++不能通过编译呢?
(C++)++也通不过,无论VC还是dev   c++环境,编译提示needs   l-value
而++++C无论哪种环境都可以

在做运算符重载的时候发现的这个问题,如果我自己写代码,当然不会采用这种格式,但觉得编译器这样做一定有其内在的原因。请指点!

[解决办法]
原因是这样的:(C++)++
(C++)得到的是C值的引用,是一个右值,执行完后,C的地址中已经是C+1了,所以在进行++是要出错的,因为这次又要引用了,但是没有地址,怎么引用啊!!!!
[解决办法]
支持3楼


[解决办法]
很简单,分开两部分来看.
c++ ++
后缀++要求参数为左值,而c++返回的是个右值,而右值再是不能再++的
[解决办法]
楼上几位都没说好.
后置式的++返回为一个const型别, C++++试图将一个const作为左值, 自然是不对的.
[解决办法]

原因是这样的:(C++)++
(C++)得到的是C值的引用,是一个右值,执行完后,C的地址中已经是C+1了,所以在进行++是要出错的,因为这次又要引用了,但是没有地址,怎么引用啊!!!!

xingfu9966()答的对的

热点排行