this指针的用途当形参和成员变量同名时,可用this指针来区分在类的非静态成员函数中返回对象本身,可使用return *this
时间: 2024-11-09 14:28:13 浏览: 6
在面向对象编程中,`this`关键字是一个隐含的指针,它指向当前正在调用该成员函数的对象实例。当你在类的非静态成员函数中遇到一个与形参同名的情况,比如有一个与函数参数同名的局部变量,这时`this`就显得尤为重要。通过使用`this`,你可以明确地引用到类的成员变量,避免命名冲突。
举个例子,如果你有这样一个函数:
```java
public class MyClass {
private int value;
public void setValue(int val) {
// 如果这里有个形参val,可能会和value成员变量混淆
// 使用 this.value 就可以明确地操作成员变量
this.value = val;
}
}
```
在`setValue`函数中,`this.value`就是用来访问类实例的`value`属性,而不是临时的形参`val`。此外,`return *this;`用于返回当前对象的引用,这在某些场景下非常有用,比如组合操作或链式调用:
```java
public MyClass operator+(MyClass other) {
MyClass result = *this; // 返回当前对象的副本
result.value += other.value;
return result;
}
```
这样,你就可以链式调用成员函数,如`myObject.setValue(5).operator+(anotherObject)`。
阅读全文