C++类的this指针详解(2)

Sales_data::combine使用作用域运算符以说明:我们定义了一个名为combine的函数,并且该函数声明在Sales_data类的作用域内,因此当combine使用untis_sold和revenue时,也是隐式地使用了Sales_data的成员

我们调用这个combine时

total.combine(trans)

total的地址被绑定到隐式的this参数上,而rhs绑定到了trans上

你应该注意到了,这个函数的关注点应该在于返回类型和返回语句

combine设计的初衷是尽量模仿+=运算符,+=把左侧的运算对象当成左值返回,为了尽可能一致,combine必须返回引用类型(这时左侧运算对象是一个Sales_data对象,所以返回类型为Sales_data&)

怎么返回呢,现在我们就不需要使用隐式的this指针访问函数调用者 的某个具体成员,而是需要把调用函数的对象当成一个整体来访问

return *this;

return语句解引用this指针,获得了执行该函数的对象,total.combine(trans)就会返回对total的引用

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/5764969c90614c7aa82d652d0eabe15c.html