[英]Return value vs pointer vs reference in C++
我在 StackOverflow 上看到了這個問題:
我想到了一個問題——這三個有什么區別?
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.