为什么我们不能在课堂上使用“this”?

时间:2009-01-22 02:19:10

标签: c++

E,g

class Test {
  public:
      void setVal(const std::string& str) {
           this.isVal = str; //This will error out
      }

  private:

      string isVal;
};

4 个答案:

答案 0 :(得分:33)

在C ++中,this是一个指针(与引用相对)。所以你必须改为this->isVal

答案 1 :(得分:15)

添加到Chris's answer,您也可以这样做:

(*this).isVal = str;

但是,克里斯所说的更好,因为它更正统。这只是说明在调用指针之前需要取消引用指针。

答案 2 :(得分:8)

您也不需要显式使用this来访问成员变量/方法。你可以简单地说:

isVal = str;

答案 3 :(得分:0)

对于设计范围,您可以这样使用:

Test :: isVal = str;