C++ Class 变量未更新
C++ Class Variable not updating
我正在尝试为我用 C++ 制作的 class 编写一个计数器。
我将一定量的时间 deltaT 传递给 Wake class 的方法,该方法只是将它添加到 class 中的变量已存储的值上。代码是:
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()也returns一个参考,一个PLAYERSHIP&.
上次遇到类似的问题,通过调用并返回引用解决了,而不仅仅是ClassName。我还在做错什么吗?
getWakes()
还需要 return 引用,并且应该 return vector&
而不是矢量。
我在此处添加此内容以确保将此问题标记为已回答。
我正在尝试为我用 C++ 制作的 class 编写一个计数器。 我将一定量的时间 deltaT 传递给 Wake class 的方法,该方法只是将它添加到 class 中的变量已存储的值上。代码是:
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()也returns一个参考,一个PLAYERSHIP&.
上次遇到类似的问题,通过调用并返回引用解决了,而不仅仅是ClassName。我还在做错什么吗?
getWakes()
还需要 return 引用,并且应该 return vector&
而不是矢量。
我在此处添加此内容以确保将此问题标记为已回答。