使用此指针检查对象的相同实例?

时间:2013-02-13 23:38:59

标签: c++ this instance

我有一个std::vector,其中包含一些对象。我如何使用内存地址(我是否想为此目的使用this指针?)来检查我是否对同一个对象做了什么?

例如:

void particle::calcFrc(std::vector<particle>& particles)
{
    vector3d tRel;
    mFrc.reset();
    for(unsigned int j = 0; j < particles.size(); j ++){

        if(... what goes here? ...){

            tRel = particles.at(j).mPos - mPos;

            if(tRel != zero()){
                // do stuff
            }
        }
    }
}

我想检查if语句,看看particles.at(j)是否指的是调用此方法的同一对象。

1 个答案:

答案 0 :(得分:0)

if(... what goes here? ...){

我认为你在寻找的是:

if (this != &particles[j]) {

...并且测试将正常工作,假设此对象实际上是传递给方法的向量中的一个对象(而不仅仅是其中一个的临时副本)。