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

时间:2021-06-08 18:47:02

标签: c++

我在 StackOverflow 上看到了这个问题:

return "this" in 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; }
};

1 个答案:

答案 0 :(得分:0)

仔细看看以下内容:

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

如果您了解最后三行之间的差异,您可以将这种理解扩展到您发布的代码中的成员函数。如果您不了解这些差异,最好从 a good textbook 中学习这些基本概念。