Das Folgende ist eine gekürzte Version meiner Sprite-Klasse:
%Vor%Ich möchte ein SpriteState-Objekt über eine Elementfunktion erstellen, die in etwa wie folgt aussieht:
%Vor%Ich erhalte den folgenden Fehler:
Eine nicht statische Mitgliedsreferenz muss relativ zu einem bestimmten Objekt sein
Die Grundidee hinter der Klasse selbst besteht darin, die verschiedenen Zustände des Sprites so zu speichern, wie es sich ändert, so dass ich bei Bedarf leicht in einen vorherigen Zustand zurückkehren kann.
In den meisten Fällen wird der Sprite jedoch nur mit neuen Positionswerten aktualisiert, während Breite, Höhe, Rotation und Skalierung nahezu unverändert bleiben. Das bedeutet, dass ich nur den Positionswert während des Hochspringens ändere und erneut Referenzen vom letzten speichere Status für die anderen Werte gespeichert.
Ich möchte daher in der Lage sein, Standardwerte für die Funktion festzulegen, so dass ich die gleichen Werte nicht mühsam wiederholt schreiben muss.
Irgendwelche möglichen Ideen zur Umsetzung?
Standardargumente werden im Kontext des Aufrufers ausgewertet. Wenn Sie also auf einen Member Ihrer Klasse zugreifen müssen, um den Standardwert zu erhalten, können Sie keine Standardargumente verwenden.
Auf der anderen Seite können Sie Überladen verwenden, um den gleichen Effekt zu erzielen:
%Vor%Tags und Links c++ data-structures struct