C++里引用能被引用吗?

YetToCome 发布于 2014/01/20 20:48
阅读 885
收藏 1
c++
我记得引用只能给对象起一个别名,所以引用的目标必须是对象,而引用本身不是对象,所以我觉得应该不存在引用的引用。但现在我的一段代码竟然编译执行都正确:
/* 
* 程序中 vs是一个vector<string>的对象
* 这段代码我想直接操控一个字符
* 写完之后感觉应该是错的,但通过了
*/
for (auto &c : vs) {
    for (auto &cc : c) {
        /*......*/
        }
}
希望大家能给点帮助
加载中
0
DogFeet
DogFeet

这不是引用的引用,

cc 和 c 所代表的对象不一样。

c引用的是 一个string对象

而cc则是引用的string中的一个字符对象(说字符可能有点不严谨)

与引用是一个对象的别名,这条不冲突。

0
宏哥
宏哥
该评论暂时无法显示,详情咨询 QQ 群:点此入群
宏哥
宏哥
回复 @弦歌 : 用C就够了.
弦歌
弦歌
很好奇@宏哥用什么语言,因为我发现无论什么语言都被@宏哥喷。难道@宏哥自己发明了一种语言?
0
Yashin
Yashin
只是给原来的对象又起了一个新的别名
0
ericsoul
ericsoul
这是c++?auto &c:vs这种语法没见过,是我孤陋寡闻?!
ericsoul
ericsoul
那这个就是定义了一个类似与iterator的c的引用,指向vs这个集合里面的每一个元素了。所以,auto &cc:c就是定义的一个 指向一个由字符集合组成的一个string对象中的每一个元素,即字符的迭代器了。不知道lz理解没有。呵呵。
ericsoul
ericsoul
呃,汗。我的确out了。
maxos
maxos
vs里是有这种语法的,vs2012和vs2013,这是c++11的新语法,也就是2011年通过的新的c++标准,已经两年多了
流光月舞
流光月舞
这是C++11以范围为基础的循环。详情可看C++11的新特性
0
dingpu
dingpu
该评论暂时无法显示,详情咨询 QQ 群:点此入群
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部