我正在尝试为我在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&amp;。
上次我有类似的问题,它是通过调用和返回引用而不仅仅是ClassName来解决的。我还在做错什么吗?
答案 0 :(得分:0)
getWakes()
还需要返回引用,并且应该返回vector&
而不是vector。
我在这里添加此内容以确保将此问题标记为已回答。