'this'指针只隐藏在C++或java中吗?

Mut*_*der -7 c++ java hidden pointers this

我最近一直在做大量的学习,我正在研究C++,以及隐藏指针(this)的主题.

这是迄今为止我见过的最复杂的话题之一.我记得this从Java,我不记得它隐藏在Java中.我记得你必须在Java中明确地使用它,但显然它在C++中是自动的.谁能证实这一点?

Xab*_*ter 9

隐?它没有隐藏.那有什么意思?

我记得你必须在Java中明确地使用它

仅在某些情况下.调用的变量name可以在类中知道,也可以是方法中参数的名称.例:

class Test {
    String name;

    public void test(String name) {
        name = name; // What happens?
    }
}
Run Code Online (Sandbox Code Playgroud)

name提到这两个时间它指的是参数.类字段保持不变.this.name如果你想要类字段,你必须告诉编译器你想要的.

在其他情况下,当名称中没有冲突时,该this.部分是隐式的.例:

class Test {
    String tutorName;

    public void test(String name) {
        tutorName = name; // What happens?
    }
}
Run Code Online (Sandbox Code Playgroud)

即使您未使用this关键字,也会更改类字段.

  • 我不知道你要说的是什么*,但C++和Java在这里表现相同.你不必编写`this`,但如果你这样做,你*明确*告诉编译器你引用了一个成员.如果不这样做,它*可能*引用成员*,除非没有其他本地变量隐藏成员*.在C++和Java中. (4认同)
  • @MutantCoder然后你知道错了. (3认同)