C ++ - (* this)的定义

时间:2015-02-09 07:37:39

标签: java c++

我有一个用c ++编写的代码,我不知道这段代码应该做什么。我试图在论坛中搜索,但我仍然感到困惑。 有人可以帮我为我定义这段代码吗?

inline void normalize() {
       const float inv_length = 1.0f / get_length();
       (*this) *= inv_length;
}

(* this)语法让我感到困惑,是否引用了返回值? 如果你有更多的时间,可以用Java重写它吗?

2 个答案:

答案 0 :(得分:4)

this是指向调用成员函数的当前对象的指针。

*this只是取消引用该指针,因此它是对该对象的引用。


改写为Java:

void normalize() {
    final float inv_length = 1.0f / get_length();
    this.multiply(inv_length); // Since there is no operator overloading in Java, this had to be converted to a method.
    // Note that the "this." above is optional.
}

虽然this关键字为您提供了C ++中的指针(因为引用是在this之后添加到C ++中的。),相同的关键字为您提供了Java引用,如{{ 3}}

答案 1 :(得分:-3)

(this)是一个指针,它存储变量的地址。它前面的星号(*)表示这是一个指针。

(*this) *= inv_length;

相同
(*this) = (*this) * inv_length;

(* this)是指向

的任何(this)的值

您的声明正在做的是它将指针中存储的值乘以inv_length。