C++对象与this指针
1.内存中的对象
- 同类的不同对象数据独立,每一个对象都有独立的单元存储对象的数据成员
- 同类对象共享成员函数的代码块
既然所有对象共享函数,那么,怎么知道那个对象在调用呢?
2.this指针指向的对象调用成员函数
函数调用时,object.function(),会将指向object的一个指针作为隐藏的参数传给function,,这样,函数就明白是那个对象在调用.这个隐藏参数,在函数中显式的用this表示
class A{
private:
int a, b;
public:
A(int a = 0, int b = 0);
A *getP(); //返回对象地址
};
A::A(int a, int b){ //这里的a, b是局部变量
this->a = a; //this->a, 表示this指向的对象的a成员
this->b = b;
}
A *A::getP(){
return this; //返回调用这个函数的对象的地址
}