如果我定义了三个对象,如下所示:
const string & textA = messages.at(0),
textB = messages.at(1),
textC = messages.at(2);
textB
和textC
实际上是参考吗?
我是否必须将&
放在textB
和textC
前面?
谢谢!
答案 0 :(得分:5)
textB
和textC
不是参考。可以将&
视为属于变量,而不是类型。
(刚用g ++检查)
答案 1 :(得分:2)
使用这种表示法,你会看到会发生什么:
const string &textA = .., // reference
&textB = .., // reference
textC = ..; // value
同样适用于指针:
const string *textA = .., // pointer
*textB = .., // pointer
textC = .. ;// value
组合
const string *textA = .., // pointer
&textB = .., // reference
textC = .. ;// value