Du bist nicht angemeldet.

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

1

03.08.2009, 01:15

Fehlervermeidung

Also mal angenommen ich habe eine Klasse deren Objekte ich in einem Container speichere, wofür ich ja einen Vergleichsoperator benötige. Mit welche Tricks schaffe ich es, dass wenn ich z.B. Member hinzufüge ich mit Sicherheit daran denke auch den Vergleichsoperator zu ändern?
Am besten wären natürlich irgendwelche Compilerfehler, weil man die nie ignoriert, aber die würde ich leichter kriegen, wenn ich einen Member entferne und den Operator nicht anpasse, aber beim hinzufügen?
Es ist halt so, dass man da nicht unbedingt dran denkt, auch wenn ich den Fehler gerade zügig gefunden habe, ist es ja eigentlich unnötige Debugzeit.
Lieber dumm fragen, als dumm bleiben!

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

2

03.08.2009, 09:10

Sorry wenn ich einfach mal blöd frage, aber warum brauchst du einen vergleichsop. wenn du etwas in einem container speichern willst? Bis auf automatische sortierung in den STL-containern seh ich da grade absolut keinen zusammenhang ^^ und aus welchem grund sollte der geändert werden müssen, wenn du ein neues objekt (meinst du das mit member?) in die liste einfügst?

3

03.08.2009, 09:44

nenen...erstma wird er seinen grund haben, sonst würde er nich von zu langer debug zeit sprechen, zweitensma meint er n member einer klasse, was natürlich im vgl-op auch mit verglichen werden muss...

puh, allerdings ne interessante fragestellung :)


also ne möglichkeit wäre mit dem preprozessor zu arbeiten...
wenn du dir angewöhnst, einen member so zu definieren:

C-/C++-Quelltext

1
#member(double,m_life)

das makro haut gleich eine referenz in ne liste zu vergleichender objekte
(das allerdigs erfordert glaube ich etwas tricksereien... benutz dazu ambesten die Boost::PP, um PreProzessor-Listen zu nutzen, und dann speicherste im Constructor alle einträge der präprozessor-liste in ner normalen)
dann kannste dann im vergleichsoperator einfach alle objekte in der liste vergleichen, und hast immer alle verglichen

Werbeanzeige