我刚刚开始使用C++,遇到了一些参考资料,而且还没有完全理解。
引用,正如我所读到的,是object.Why使用的替代名称,而不是直接访问对象,因为引用上的任何操作都直接反映在对象上.?
而且,上面说
double& dr = 1; ---- says it is an error (some lavalue needed)
const double& cdr = 1; ---- says it is ok. 我不明白,properly..So,请解释一下为什么.
谢谢.)
发布于 2010-08-17 13:18:11
为什么要使用它而不是直接访问对象,因为引用上的任何操作都直接反映在对象上.?
C++按值传递参数,这意味着如果您有如下函数:
void foo(MyObject o) { ... }默认情况下,C++将复制一个MyObject,而不是直接使用传入的对象。因此,引用的一种用法是确保您正在处理同一个对象:
void foo(MyObject &o) { ...}或者,如果您不修改o
void foo(const MyObject &o) { ... }发布于 2010-08-17 13:11:46
引用基本上是一个看起来像对象的指针。获得一个空引用非常困难,尽管您可以通过循环创建一个引用。
关于您的示例,1是一个rvalue或一个结果。它只是一个临时变量,不能修改。因此,您不能接受非const引用。但是,您可以对其进行const引用。这意味着您不能更改引用的值。
下面是一个创建空引用的示例。别这么做!
int * x = (int *)NULL;
int & y = *x;发布于 2010-08-17 13:17:17
赞成。仅仅使用引用作为别名并不是很有用。如果您认为它是一个不可变的指针,它会更有用。但实际上没那么有用。
实际上,它用于定义干净的接口。例如,当您定义:
int foo(const int& param);您说param是foo中的只读参数。
不要忘记,您必须为引用赋值。
有关更多信息,请参见参考资料上的C++辉石岩
my2c
https://stackoverflow.com/questions/3502687
复制相似问题