我最近一直在做大量的学习,我正在研究C ++,以及隐藏指针(this
)的主题。
这是迄今为止我见过的最复杂的话题之一。我记得来自Java的this
,我不记得它隐藏在Java中。我记得你必须在Java中明确地使用它,但显然它在C ++中是自动的。谁能证实这一点?
答案 0 :(得分:9)
隐藏?它没有被隐藏。这甚至意味着什么?
我记得你必须在Java中明确地使用它
仅在某些情况下。名为name
的变量可以在类中知道,也可以是方法中参数的名称。例如:
class Test {
String name;
public void test(String name) {
name = name; // What happens?
}
}
提及name
两次都指的是参数。类字段保持不变。如果你想要类字段,你必须告诉编译器你想要this.name
。
在其他情况下,当名称中没有冲突时,this.
部分是隐式的。示例:
class Test {
String tutorName;
public void test(String name) {
tutorName = name; // What happens?
}
}
即使您没有使用this
关键字,也会更改班级字段。