?
Nexus schrieb:
Bei meinem Projekt hab ich eine Spriteklasse, die mehrere public-Funktionen und 2 protected Variablen hat. Jetzt ist es ziemlich mühsam, wenn man z.B. die Position des Sprites herausfinden will, muss man immer Sprite->GetRect()->x; eingeben (die GetRect-Funktion gibt ein &SDL_Rect zurück, indem die x-Koordinate gespeichert ist). Wäre es nicht einfacher, einfach Sprite->x zu schreiben und dafür öffentliche Variabeln zu erstellen? Mit Klassen hab ich eben noch nicht sehr viel Erfahrung. Ich weiss zwar, dass es zu Problemen kommen kann, wenn die Variabeln öffentlich zugänglich sind, doch wieso ist das eigentlich so? Weil sie aus Versehen geändert werden könnten? Ich denke, der Typ, von dem ich das habe, weiss schon Bescheid... Deshalb wollte ich euch fragen, wie ihr es handhabt mit Klassenfunktionen...
Ich freue mich auf eure Antworten...
Die eigendliche Antwort ist, daß bei einem guten Programmdesign überhaupt keine Notwendigkeit bestehen sollte überhaupt auf die Variablen der Klasse zuzugreifen. Der Gedanke der Kapselung ist ja eben, alle relevanten Daten und Funktionen die die Klasse benötigt in selbiger zu vereinen. Sobald die Notwendigkeit besteht "von Aussen" auf Variablen einer Klasse zuzugreifen ist das zumindest ein Hinweis auf unsauberes Design.