私はオブジェクトのベクトルを反復処理し、それらの変数を変更する必要があります。C++での参照渡しはどうすればできますか?
void Projectile::setX(float &)': cannot convert argument 1 from 'float' to 'float &'
initial value of reference to non-const must be an lvalue
私はこれをしようと道がループのために、この中にある:
for (Projectile p : activeProjectiles) {
if (p.isLeftPublic) {
float g = p.getX();
p.setX(g - (60));
}
else if (!p.isLeftPublic) {
float g = p.getX();
p.setX(g - (60));
}
}
GETXと、私はそうするときただし、C++は私に次のエラーを与えますSetX関数は次のようになります。
float Projectile::getX() {
return x;
}
void Projectile::setX(float &_x) {
this->x = _x;
}
Any助けに感謝します。
'Projectile :: setX() 'で参照渡す理由はありません – Slava
' this-> 'notationはパラメータとデータメンバの名前が異なるためです。データメンバーに直接アクセスする: 'x = _x;' –
個人的には、 'this-> x = x;' _xからフェルドリーの '_'を削除しますが、明確で表現力があります。 – Galik