我知道关于指针的所有内容,&符号表示“地址”,但在这种情况下它意味着什么?
另外,当重载运算符时,为什么常见的是使用const?
声明参数答案 0 :(得分:14)
在这种情况下,您将返回对ostream对象的引用。严格认为&符号作为“地址”并不总是适合你。 Here来自C ++ FAQ Lite的一些关于参考文献的信息。
就const来说,const正确性在C ++类型安全性中非常重要,你可以尽可能多地做。 FAQ中的另一个page在这方面有所帮助。 const可帮助您避免与副作用相关的更改,在您可能没有预料到的情况下弄乱数据。
答案 1 :(得分:7)
根据&符号的上下文,它可能意味着2种不同的东西。你的具体问题的答案是它是一个参考,而不是“地址”。它们是非常不同的东西。了解差异非常重要。
使参数const的原因是确保它们不被函数更改。这保证了函数的调用者不会改变它们传入的参数。
答案 2 :(得分:3)
这意味着该变量是一个参考。它有点像指针,但不是真的。
请参阅:Reference (C++)
答案 3 :(得分:3)
在C ++类型声明中,&符表示“引用”。在这种情况下,operator <<
会返回对ostream
对象的引用。
由于它实际返回*this
,它实际上是同一个ostream
对象,这意味着您可以将调用链接到operator <<
,类似于:
os << "Hello" << " " << "World" << endl;