簡體   English   中英

C++ 中的返回值 vs 指針 vs 引用

[英]Return value vs pointer vs reference in C++

我在 StackOverflow 上看到了這個問題:

在 C++ 中返回“這個”?

我想到了一個問題——這三個有什么區別?

class myclass {
public:
   // Return by pointer needs const and non-const versions
         myclass* ReturnPointerToCurrentObject()       { return this; }
   const myclass* ReturnPointerToCurrentObject() const { return this; }

   // Return by reference needs const and non-const versions
         myclass& ReturnReferenceToCurrentObject()       { return *this; }
   const myclass& ReturnReferenceToCurrentObject() const { return *this; }

   // Return by value only needs one version.
   myclass ReturnCopyOfCurrentObject() const { return *this; }
};

仔細看看以下內容:

int i = 10;
int* ptr = &i;
int& ref = i;
int copy = i;

如果您了解最后三行之間的區別,您可以將這種理解擴展到您發布的代碼中的成員函數。 如果您不了解這些差異,最好從一本好的教科書中學習這些基本概念。

暫無
暫無

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

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