1

我正在尝试为我用 C++ 制作的一个类编写一个计数器。我将一段时间 deltaT 传递给 Wake 类的一个方法,该方法只是将它添加到已经由类中的变量存储的值上。代码是:

void checkPlayerWakes(int deltaT){
    for(size_t i = 0; i < game.getPlayer().getWakes().size(); i++){
        Wake& w = game.getPlayer().getWakes().at(i);
        w.age(deltaT);
    }
}

但是,要增加的计时器仍保持在 0。更改计时器的代码是:

void Wake::age(int millis) {
    cout << "Updating : " <<  currentLife;

    this->currentLife += millis;

    setAlpha(((double)currentLife)/((double)lifeTime));

    cout << " " << currentLife << endl;
}

E.g.
first current life: 0
second current life: 16

我知道如果我要使用

Wake w = something
w.age(deltaT)

它不起作用,因为“w”只是对象的副本。但是,这显然不是我的问题?game.getPlayer() 也返回一个引用,一个 PLAYERSHIP&。

上次我有一个类似的问题,它是通过调用和返回引用而不是类名来解决的。我还在做错什么吗?

4

1 回答 1

0

getWakes()还需要返回一个引用,并且应该返回vector&而不是向量。我在这里添加这个以确保这个问题被标记为已回答。

于 2017-04-14T11:59:44.343 回答