进阶篇

    xiaoxiao2021-04-12  31

    this是C++中的一个关键字,代表指向当前对象的指针,类的每个非静态成员函数中都隐式地声明了this指针。this更多时候的用处:用来返回指向对象本身的指针以实现对象的链式引用,或者避免对同一对象进行赋值操作。例如:

    # include <iostream> using namespace std; class Point { public: Point(int x, int y) : m_nX(x), m_nY(y) {}; void operator = (Point& pt) { if(this != &pt) //注意这里是&pt,而非pt。pt还是对象,不是指针:避免对同一对象进行赋值操作 { this->m_nX = pt.m_nX; this->m_nY = pt.m_nY; } } Point& move(int x, int y)//注意这里是Point&,返回的还是对象而不是指针,但可以连续调用,即移动多次 { this->m_nX += x; m_nY += y; return *this; //注意这里是*this,返回对象本身以实现链式引用 } // Point move(int x, int y)//如果这里写Point,对象只能调用一次,即只能移动一次 // { // this->m_nX += x; // m_nY += y; // return *this; // } void show() { cout<<m_nX<<" "<<this->m_nY<<endl; } private: int m_nX; int m_nY; }; int main() { Point pt1(2,3); Point pt2(0,0); pt1.show(); pt2.show(); pt2 = pt1; pt2.show(); pt1.move(1,1).move(1,1); //返回对象本身实现对象的链式引用 pt1.show(); return 0; } /*结果: 2 3 0 0 2 3 4 5 //如果要写Point,而不是Point&的话是3 4(即不能实现连续移动两次) */

    转载请注明原文地址: https://ju.6miu.com/read-667210.html

    最新回复(0)