30

我知道所有关于指针的知识,和号的意思是“地址”,但在这种情况下它是什么意思?

另外,在重载运算符时,为什么通常用 const 声明参数?

4

4 回答 4

18

在这种情况下,您将返回对 ostream 对象的引用。严格地将 & 符号视为“地址”并不总是适合您。是来自 C++ FAQ Lite 关于参考的一些信息。

就 const 而言,const 正确性在 C++ 类型安全中非常重要,并且您将尽可能多地去做一些事情。常见问题解答中的另一个页面在这方面有所帮助。const 帮助您避免与副作用相关的更改在您可能没想到的情况下弄乱您的数据。

于 2009-10-15T12:23:24.963 回答
10

根据与号的上下文,它可能意味着 2 种不同的东西。您的具体问题的答案是它是一个参考,而不是“地址”。它们是非常不同的东西。了解差异非常重要。

C++ 参考

将参数设为 const 的原因是为了确保它们不会被函数更改。这保证了函数的调用者他们传入的参数不会被改变。

于 2009-10-15T12:25:00.967 回答
4

这意味着该变量是一个引用。它有点像指针,但不是真的。

请参阅:参考 (C++)

于 2009-10-15T12:22:37.470 回答
4

在 C++ 类型声明中,与号表示“引用”。在这种情况下operator <<,返回对ostream对象的引用。

因为它实际上返回*this它实际上是同一个ostream对象,这意味着您可以将调用链接到operator <<,类似于:

os << "Hello" << " " << "World" << endl;
于 2009-10-15T12:22:58.380 回答