Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class Vec2 { public: Vec2() : m_X(0) , m_Y(0) {} Vec2(float x,float y) : m_X(x) , m_Y(y) {} float getX() const { return m_X; } usw. usw. private: float m_X; float m_Y; } |
C-/C++-Quelltext |
|
1 2 3 |
Vec2 v(100.0f,100.0f); Vec2 u(200.0f,200.0f); Vec2 w = u + v; |
C-/C++-Quelltext |
|
1 2 3 4 |
namespace math { Vec2 operator + (const Vec2& v,const Vec2& u); } |
Naja, da ich etwas Zeit habe, fangen wir doch mal eine OOP Diskussion an.
Also: Warum ist in der Paddle Klasse eine draw Methode? Sie ändert ja keine Daten in der Instanz, also warum hast Du sie in der Klasse?
[...]
Streng nach OOP Regeln sollte man diese Methode eher auslagern:
Die draw Methode gehört in keine Klasse.
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »dot« (12.10.2011, 14:17)
C-/C++-Quelltext |
|
1 2 3 4 |
void drawPaddle(ALLEGRO_BITMAP* image) { al_set_target_bitmap(image); al_clear_to_color(al_map_rgb_f(200, 0, 200)); } |
C-/C++-Quelltext |
|
1 2 3 4 |
void drawPaddle(const Paddle& paddle) { al_set_target_bitmap(paddle.getImage()); al_clear_to_color(al_map_rgb_f(200, 0, 200)); } |
C-/C++-Quelltext |
|
1 2 |
Paddle p(10,10,20,20); drawPaddle(p); |
Warum mit globalen Daten?
Ich habe da noch einen Link zu einem interessanten Artikel gefunden: How Non-Member Functions Improve Encapsulation
Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von »dot« (12.10.2011, 16:01)
Wenn wir schon über OOP diskutieren wollen, dann würd ich fragen, was die ganzen Getter da eigentlich sollen...
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Sacaldur« (12.10.2011, 15:16)
Ich würde zuallererst einmal die Frage stellen, warum jemand die IP-Adresse von meiner Netzwerkverbindung bekommen muss.
[...] diese Information ist wo anders bereits vorhanden.
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].
[...] diese Information ist wo anders bereits vorhanden.
es ist durchaus sinnvoll, Daten einmal zu verwalten und sich keine Redundanzen anzuschaffen
allerdings kann es sich bei dem Objekt mit der IP-Adresse um das eine Objekt handeln, welches diese IP-Adresse speichert - dann wäre sie eben nicht an anderer Stelle vorhanden
Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »dot« (12.10.2011, 16:00)
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].
Werbeanzeige