c++day7 this指针

C++:this
void setXY(Simple * const this,int a,int b){
    this->x = a;this->y = b;
}
其实也就是obj1.setXY(10,15);
obj1.setXY(10,15,&obj1);//有一个默认的指针(引用)指向当前的对象,用this也可以区分实名的形参和实参

#include
using namespace std;
//请问这里三个不同位置的const分别修饰的是什么?
//1.const修饰的其实是this指针,只不过c++编译器隐藏起来了。
//const修饰的不是指针, 是指针所指向的内存空间,可以改变内存空间的值
//但是不可以直接修改this指向的内存空间
//2.例如this=0x11;是不允许这样修改的。
class Test{
public :
    Test(int a=0 ,int b=4 ){
        this->a = a;
        this->b = b;
    }
    int getA(){
        return a ;
    }
    int getB(){
        return b;
    }
public:
    //t3 = t1.TestAdd(t2);
    Test TestAdd(Test &t2){
        Test tmp(this->a+t2.a,this->b+t2.b);
        return tmp;
    }
    //t1 = t2 + t1;函数的运算结果累加到自身上
    //返回一个引用相当于返回变量的自身,就是返回的内存的首地址,返回t1这个元素
    Test &TestAdd2(Test &t2){
        this->a = this->a + t2.a;
        this->b = this->b + t2.b;
        cout<<"调用返回自身的累加函数"<         return *this;//把*(&t1)又回到了t1元素
    }

    void printT(){
        cout<<"a"<     }
    ~Test(){
        cout<<"a"<         cout<<"析构函数被调用"<     }
protected:
pri

你可能感兴趣的:(c++基础,c++)