谁能举出一些例子,说明通过引用传递优于通过指针传递。
基本上两者都提供相同的功能,但我想知道在什么地方通过引用传递是强制性的。
此外,请建议如何决定使用两者中的任何一个。
请提供一些基本示例。
最佳答案
复制构造函数和赋值运算符。
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/