簡體   English   中英

通過引用返回指針

[英]Returning a pointer by reference

我看過一些看起來像這樣的C ++:

const Foo*& ptr = GetPointerToFoo();

似乎與以下功能相同:

const Foo* ptr = GetPointerToFoo();

甚至:

Foo* ptr = GetPointerToFoo();

在第一個示例中, &的用途是什么? 是否通過引用傳遞GetPointerToFoo()返回的值? 這有什么用? 只是為了使其運行更快,而不需要復制此指針? 如果是這樣的話,這似乎是一個非常復雜的實現,只是實現了很小的速度提升……還是在這里使用&其他原因?

  • const Foo*& ptr :該引用使指針本身可變。 調用者可以修改內部指針(例如,指向nullptr),但不能修改內部內容(可能沒有用)。
  • const Foo* ptr :指向不變內容的指針。 調用者無法修改內部指針。
  • Foo* ptr :指向可變內容的指針。 調用者可以修改內部內容,但不能修改內部指針。

注意:通過引用返回指針是另一種間接方式,會使代碼運行不快。

注意:我假設問題中有三個不同的GetPointerToFoo()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM