为什么需要this指针
在C++中每个新生成的对象都有一个地址,比如我们用下面方法来生成的对象,food3
表示指向该对象的地址,而this
的含义和food3
是一样的,都是一个指向对象的地址。
stock* food3 = new stock("wang3",1,2);
food3->OutPut();
比如在一个类中,有一个比较函数名字叫做topval
它比较一个输入的类的total_val
值和该类自身的tatal_val
值,并返回数值较大的那个数的对象指针,我们可以清晰的知道,如果输入的Stock
对象s的total的值比较大,那么直接返回s就好了,那如果是类本身自有的成员变量的total_val
的比较大应该返回什么呢?
答案在图2
图1
图2
this指针代表什么
- this表示指向该对象的指针
- 如果要表示该对象而不是该对象的地址,应该表示为*this