这和*这个区别

时间:2015-10-19 11:39:43

标签: c++ reference static this

以下程序输出是正确的,但是当我使用它时出现错误  代替* this.Can任何人都告诉我这是什么和*这意味着

function $parse(expression) {
    return function() {
        return $eval(expression);
    }
}

输出:

#include<iostream>
using namespace std;

class Test 
{
private:
    static int count;
public:
    Test& fun(); // fun() is non-static now
};

int Test::count = 0;

Test& Test::fun() 
{
    Test::count++;
    cout<<Test::count<<" ";
    return *this;
}

int main()  
{
    Test t;
    t.fun().fun().fun().fun();
    return 0;
}

当我用它代替*时,会出现这个错误:

1 2 3 4

有人能通过举一个好例子告诉我这和*之间有什么区别吗?

1 个答案:

答案 0 :(得分:7)

  

任何人都可以告诉我这是什么意思和*这意味着

this是指向当前对象的指针。

*this是当前对象。

您可能知道解除引用运算符的作用是什么?我不知道您为什么要随意尝试将this换成*this。不要那样做。