假设您有一个大型结构,或者一个std::vector或一个std::string对象,并且您将其按值传递给函数。这意味着对象被复制,这对于大型对象(例如包含几百万个条目的向量)来说可能非常低效。然后您可以使用对常量对象的引用,例如std::vector<SomeType> const& my_object。
尽可能使用引用而不是指针。除非你想操作低级内存,否则你不应该处理指针。另一种用法是使用 new 作为指针并传递该指针的引用,将主要数据保留在堆上。但使用新的 unique_ptr、shared_ptr 和weak_ptr 组合,甚至不需要这样。唯一需要指针的地方是当对象可以为 nullptr 时,因为引用不能为 NULL。您可以安全地假设引用是有效的对象,除非有人以不正当的方式扭曲了代码。