c++ - 当通过引用传递成为强制通过地址/指针传递时

标签 c++ pointers pass-by-reference

谁能举出一些例子,说明通过引用传递优于通过指针传递。

基本上两者都提供相同的功能,但我想知道在什么地方通过引用传递是强制性的。

此外,请建议如何决定使用两者中的任何一个。

请提供一些基本示例。

最佳答案

复制构造函数和赋值运算符。

struct A {
  ...
  A(const A& copy);
  A& operator = (const A& copy);
};

这些是强制性的情况。除了这些,还可能有其他情况(例如重载其他运算符,如 +<> 等等)。

Also, please suggest how to decide to use either of the two.

在大多数地方我更喜欢引用(更多 C++ 风格),如果不能使用引用,我倾向于使用指针(更多 C 风格)。
引用是 const 的某种类比表示指针;即 A&类似于 A* const .因此,它们提供了一些内置的安全措施,以防止意外覆盖位置。

关于c++ - 当通过引用传递成为强制通过地址/指针传递时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10088315/

相关文章:

c++ - 客户端-服务器回显程序陷入UDP死锁

c++ - 我可以直接为指针分配地址吗?如果是这样,该怎么做?

c++ - 转发引用 : returning T when given T&& and T& when given T&

c# - 在 C# 中按引用或值传递对象

c++ - 是否可以将 "fill"函数参数(默认为 null)与对象一起使用?

c++ - 在 C++ 项目中设置 R (C api)

c - 指针和字符数组

c++ - 为什么 "pointer=pointer+i"得到了一种随机值

c++ - 指针值未正确传递给重载的等于运算符 (C++)

c++ - 如何从双指针获取值?