【发布时间】:2011-02-04 17:27:57
【问题描述】:
const std::string s1("foo");
const std::string& s2("foo");
不确定它们有何不同,但我看到了两种用法的证据。有什么想法吗?
【问题讨论】:
-
这个问题究竟是关于什么的?你从来没有听说过引用?或者您实际上知道什么是引用,但从未见过以这种方式初始化的引用?在前一种情况下,您需要先阅读一些有关 C++ 的书。尝试通过询问不熟悉的语法来学习语言的基本特征并不是一种有效的方法。
-
@AndreyT 我对这门语言比较陌生,但我想知道这两个实例之间存在哪些微妙之处。至少根据我的经验,我没有遇到过第二个例子,我想知道它的用途。
-
无用的琐事:当前的 C++ 语言标准中存在一个缺陷,即声明只有对象可以是变量。因为
s2是一个引用,而不是一个对象,所以它在技术上不是一个变量。此缺陷已在下一个即将发布的 C++ 语言标准版本 C++0x 中得到修复。 -
@JamesMcNellis:这表明应用标准语言通常是无益的。 :)
-
@Fred:我同意。我确实在它前面加上了“无用的琐事”,因为那真的很没用。
标签: c++ variables reference constants local