Das folgende ist eine gekürzte Version meiner Sprite-Klasse:C++ struct Initialisierung
class Sprite
{
struct SpriteState {
Vector3 position;
int width, height;
double rotation, scaling;
};
std::map<int, SpriteState> stateVector;
}
Ich möchte ein SpriteState Objekt durch eine Elementfunktion erzeugen, die etwas entlang der Linien der folgenden aussieht:
SpriteState newSpriteState(
Vector3 position = stateVector.rbegin()->second.position,
int width = = stateVector.rbegin()->second.width,
int height = = stateVector.rbegin()->second.height,
double rotation = stateVector.rbegin()->second.rotation,
double scaling = stateVector.rbegin()->second.scaling)
{ SpriteState a; a.position = position; a.width = width; a.height = height; a.rotation = rotation; a.scaling = scaling; return a; }
bekomme ich folgende Fehlermeldung:
a nonstatic member reference must be relative to a specific object
die Grundidee hinter der Klasse selbst ist Speichere die verschiedenen Zustände des Sprites, während es sich ändert, so dass ich bei Bedarf leicht in einen vorherigen Zustand zurückkehren kann. In den meisten Fällen wird der Sprite nur mit neuen Positionswerten aktualisiert, während Breite, Höhe, Rotation und Skalierung nahezu unverändert bleiben. Das bedeutet, dass ich nur den Positionswert ändere, während ich die Referenzen erneut aufrufe und erneut speichere Letzter Zustand für die anderen Werte gespeichert.
ich daher für die Funktion Standardwert in der Lage sein setzen möchte, so dass ich mühsam nicht die gleichen Werte immer wieder schreiben.
Allfällige Ideen zur Umsetzung?
int width = '=' stateVector.rbegin() -> second.width? – billz