在成员函数中使用此功能无效

时间:2015-12-21 18:34:22

标签: c++

我的课程中有方法如何返回对象的引用,但我不知道如何在此方法中访问我的attribut。

Particule& update(double timestamp)
{
    this->vx += timestamp;
}

vx是我的对象Particule的归属。但是,如果我尝试使用vx访问this,那么为什么会出错?我认为这样可行。

我的班级定义:

#include <stdio.h>
#include <iostream>

class Particule{

    public:

    double rx, ry;      //position
    double vx, vy;      //velocity
    double fx, fy;      //force
    double mass;        //mass

    Particule ();
    Particule(double rx, double ry, double vx, double vy, double fx, double fy, double mass);

    Particule& update(double timestamp);

    friend std::ostream& operator<<(std::ostream& str, Particule const& p)
    {
        return str <<
        "rx : " << p.rx <<
        " ry : " << p.ry <<
        " vx : " << p.vx <<
        " vy : " << p.vy <<
        " mass : " << p.mass << '\n';
    }
};

我不知道如何在我的方法更新中访问我的对象。我通过object.update(timestamp);

调用此方法

1 个答案:

答案 0 :(得分:4)

如果定义在课堂之外,你必须做类似的事情:

Particule& Particule::update(double timestamp)
{
    this->vx += timestamp;
    return *this;
}