gpt4 book ai didi

c++ - 在 C++ 中返回 "this"?

转载 作者:IT老高 更新时间:2023-10-28 22:32:10 24 4
gpt4 key购买 nike

在 Java 中,您可以简单地 return this 来获取当前对象。你如何在 C++ 中做到这一点?

Java:

class MyClass {

MyClass example() {
return this;
}
}

最佳答案

嗯,首先,您不能从 void-returning 函数返回任何内容。

有三种方法可以返回提供对当前对象的访问的东西:通过指针、通过引用和通过值。

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; }
};

如前所述,这三种方式中的每一种都以略有不同的形式返回当前对象。使用哪一种取决于您需要哪种形式。

关于c++ - 在 C++ 中返回 "this"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6919330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com