关于this指针的解析,N多年前我就知道this指针!我也看了很多关于this指针的解释和解析!以前我以为我懂了!因为我去网上收索了下,发现都讲的是那同样的一句话!this指针是为了区别一个类定义的两个或是多个对象,在编译器编译过程中!自动加入的!我看了也以为我懂了!呵呵!其实是我受骗了!因为很多人应该都没明白为什么要有this指针吧!
我在看这本书的过程中发现了,原来this指针就是一个指针,是对象的指针!编译器在编译过程中会给方法加上指针!在代码运行过程中识别不同的对象!下面有一个说得很清楚的例程,让大家知其然还能知其所以然!
下面我定义一个类:
class CShape
{
private:
int m_color; //成员变量,颜色
public:
void setcolor(int );
};
CShape :: setcolor( int color )
{
m_color= color;
}
class CShape
{
...
public:
void setcolor(int color) { m_color = color; }
};
而实际在处理过程中是:
class CShape
{
...
public:
void setcolor(int color, (CShape*)this) { this->m_color = color; }
};
看到上面的例程应该是很清晰的介绍了什么是this指针了吧!