我在 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; }
};
答案 0 :(得分:0)
仔细看看以下内容:
int i = 10;
int* ptr = &i;
int& ref = i;
int copy = i;
如果您了解最后三行之间的差异,您可以将这种理解扩展到您发布的代码中的成员函数。如果您不了解这些差异,最好从 a good textbook 中学习这些基本概念。