c++ return *this
时间: 2023-09-04 16:01:24 浏览: 146
c语言中的return *this,通常在C++类的成员函数中使用,用于在函数的返回值中返回当前对象的引用。
*this表示当前对象本身,使用*this就可以获得当前对象的引用。
return *this将当前对象的引用作为函数的返回值,从而在调用该函数时可以继续操作当前对象。
这种技巧在链式操作中非常常见。通过返回*this,可以在一个语句中连续调用多个函数,而不需要每次都创建一个临时对象来保存中间结果。
例如,假设有一个名为myObject的类,其中定义了多个成员函数,我们可以通过链式调用来依次执行这些函数,同时操作同一个对象:
myObject obj;
obj.fun1().fun2().fun3(); //通过链式调用连续执行多个函数
其中,fun1()、fun2()、fun3()是myObject类的成员函数,通过返回*this,它们的调用可以连在一起。上述代码的执行过程如下:
1. obj调用fun1(),fun1()执行完毕后返回*this,即obj自身的引用。
2. 返回的obj继续调用fun2(),同样,fun2()执行完毕后返回*this。
3. 返回的obj再次调用fun3()。
通过这种方式,可以在一个语句中对同一个对象进行多个操作,代码更加简洁易读。
总之,return *this用于在C++类的成员函数中返回当前对象的引用,使得可以在一个语句中连续调用多个函数,实现链式操作。
相关问题
return *this
这个语句通常用于 C++ 中的运算符重载中,返回对象本身的引用,以便支持链式调用。例如:
```c++
class MyClass {
public:
MyClass& operator++() {
// 实现自增操作
return *this;
}
};
int main() {
MyClass obj;
++obj;
obj++;
return 0;
}
```
在这个例子中,`operator++()` 是一个前缀自增运算符的重载函数,它返回 `MyClass` 对象本身的引用,因此可以使用前缀和后缀形式的自增运算符。`return *this;` 返回对象本身,以支持链式调用,例如 `++obj++`。
return * this
这段代码是一个 C++ 中的语句,它的作用是返回当前对象的引用。这个语句通常用于实现“连续运算符”或“流式接口”等功能,可以在一个语句中连续调用多个对象的方法或属性,从而简化代码和提高代码可读性。
例如,假设有一个名为 obj 的对象,它有一个名为 setValue 的方法,可以设置对象的属性值,那么可以使用以下语句:
obj.setValue(1).setValue(2).setValue(3);
这个语句会依次调用 setValue 方法,将对象的属性值分别设置为 1、2、3。这里的关键就是使用了 return * this 语句,它让 setValue 方法在每次调用后都返回当前对象的引用,从而实现了“连续运算符”或“流式接口”的效果。
阅读全文