什么时候使用参考?

the*_*edi 5 c++ reference

我对引用的理解是,它们是现有变量的别名-它们不能为null。它们在修改原始输入时对于函数调用很有用,因为引用被认为比指针安全。

除上述内容外,在引用是强制性的情况下,是否还有其他原因/用例来使用引用,而不是引用所指向的现有变量

编辑:请注意,我说除了上述内容。意思是我想知道其他什么时候引用在调用函数之外有用(什么时候不需要)(我已经知道了)。我还特别想知道什么时候引用比原始变量更受青睐,而不是指针(我已经从另一个问题中学到了“在可能的情况下使用引用,在必须时使用指针”在两者之间进行选择时)。

Som*_*ude 5

假设您有一个大型结构,或者一个std::vector或一个std::string对象,并且您将其按值传递给函数。这意味着对象被复制,这对于大型对象(例如包含几百万个条目的向量)来说可能非常低效。然后您可以使用对常量对象的引用,例如std::vector<SomeType> const& my_object


use*_*384 0

尽可能使用引用而不是指针。除非你想操作低级内存,否则你不应该处理指针。另一种用法是使用 new 作为指针并传递该指针的引用,将主要数据保留在堆上。但使用新的 unique_ptr、shared_ptr 和weak_ptr 组合,甚至不需要这样。唯一需要指针的地方是当对象可以为 nullptr 时,因为引用不能为 NULL。您可以安全地假设引用是有效的对象,除非有人以不正当的方式扭曲了代码。