return *this;什么意思
时间: 2023-09-13 13:10:14 浏览: 57
"return *this;" 是 C++ 中一个返回对象自身的语句。在方法中使用它可以方便地实现链式调用,即在同一行上调用多个方法。例如:
```
class MyClass {
public:
MyClass& doSomething() {
// ... do something ...
return *this;
}
MyClass& doSomethingElse() {
// ... do something else ...
return *this;
}
};
int main() {
MyClass obj;
obj.doSomething().doSomethingElse();
return 0;
}
```
在上面的例子中,doSomething() 和 doSomethingElse() 方法都返回当前对象的引用,这使得我们可以在同一行上调用它们,从而实现链式调用。
相关问题
return *this是什么意思
"return *this" 是一个 C++ 中的语法,它表示函数返回当前对象的引用。这通常用于实现链式调用,也就是连续调用多个函数,例如:
```
class MyClass {
public:
MyClass& doSomething() {
// do something here
return *this;
}
MyClass& doSomethingElse() {
// do something else here
return *this;
}
};
int main() {
MyClass obj;
obj.doSomething().doSomethingElse(); // 链式调用
return 0;
}
```
在上面的示例中,"doSomething" 和 "doSomethingElse" 函数都返回当前对象的引用,这使得我们可以在同一行代码中连续调用它们,从而实现链式调用。
c++ return *this
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++类的成员函数中返回当前对象的引用,使得可以在一个语句中连续调用多个函数,实现链式操作。