在对象的外部访问该对象的公有成员时,必须指明是哪一个对象,然后去找这个对象对象的公有成员。
在使用对象的成员函数来访问本对象成员时,只有在成员函数中给出成员名,就可以对该对象的成员访问。
但是当我们用同一个类创建多个对象的时候,他们是共同使用同一份成员函数的,在这种情况下,成员函数怎么去辨认成员是属于哪一个对象的呢?
这时我们就引入了“this”指针。当调用类的某个非静态的成员函数时,系统就会自动产生一个隐藏的“this”指针,且这个指针始终都指向正在调用这个成员函数的对象。这样指针就作为一个参数自动传递给成员函数。
this指针是一个特殊的指针,他只在成员函数中使用。
例子:
QCManager::QCManager(int noOfQC)
{
this->QC = noOfQC;
QC = noOfQC;
(*this).QC = noOfQC;
}
上面的三句是等价的,只是写法不同。
举个形象的例子:我们把人当做是一个类,然后对象是你,我,他。我们会讲不同的话,那么怎么知道这句话是他讲的呢?就需要this指针来帮助我们。