C++中的参考文献

Fla*_*ash 11 c++

我刚开始使用C++并且遇到过引用并且没有完全理解.

我读到的引用是对象的替代名称.为什么使用它而不是直接访问对象,因为对引用的任何操作都直接反映在对象上......?

  1. 他们为何以及何时使用?
  2. 是不是每次使用时引用的常量指针......?

而且,它说

 double& dr = 1;  ----  says it is an error (some lavalue needed) 
 const double& cdr = 1;  ---- says it is ok. 
Run Code Online (Sandbox Code Playgroud)

我不明白它.所以请解释为什么它...

谢谢...:)

Jus*_*ini 11

为什么使用它而不是直接访问对象,因为对引用的任何操作都直接反映在对象上......?

C++按值传递参数,这意味着如果你有一个函数,如:

void foo(MyObject o) { ... }
Run Code Online (Sandbox Code Playgroud)

默认情况下,C++将复制a MyObject,而不是直接使用传入的对象.因此,引用的一个用途是确保您正在处理同一个对象:

void foo(MyObject &o) { ...}
Run Code Online (Sandbox Code Playgroud)

或者,如果您不修改o:

void foo(const MyObject &o) { ... }
Run Code Online (Sandbox Code Playgroud)