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

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

11

24.04.2013, 08:59

Könnt ihr mir erklären, wieso das "so" nicht funktioniert
Was genau funktioniert so nicht?

12

24.04.2013, 09:59

Ich finde es immer seltsam, zu behaupten, Java hätte keine Zeiger, wenn (Java)Referenzen im Prinzip genauso funktionieren. Klar die die Syntax anders und man hat GC vs. Smartpointer und die Zeigerarithmetik fällt vielleicht raus (wobei man die ja in normalen Klassen eh nie benutzt), aber ansich ist es doch das selbe Prinzip mit den selben Problemen.

Zum eigentlichen Problem: Ich habe ausgezeichnete Erfahrungen damit gemacht, unique_ptr's in Container zu packen. Die bilden sehr schön ab, dass es zu jedem Zeitpunkt immer genau einen Besitzer des Objektes gibt (in diesem Falle also der Container), man darüber hinaus aber beliebig viele Referenzen (also C++-Pointer) auf das Objekt haben kann. Dieses '1 Besitzer'-Konzept bringt einen nicht nur dazu, dass man seine Programme besser strukturiert, es verhindert auch Memory Leaks.
Vermutlich ist es aber ganz hilfreich, sich erst ein wenig über die Move-Konzepte zum Verschieben (statt Kopieren, dann hätte man ja 2 Besitzer) schlau zu machen. Vielleicht hilft da ein alter Thread von mir, in dem einige hilfreiche Artikel verlinkt sind (http://zfx.info/viewtopic.php?f=4&t=2770).
Lieber dumm fragen, als dumm bleiben!

13

24.04.2013, 14:16

Vielen Dank an KeksX und Jonathan Klein für die Ratschläger. :)

Gruß

14

24.04.2013, 17:23

Achso? Man sucht sich C++ aus, weil es Zeiger hat? Finde ich einen ungewöhnlichen Gedanken, kannst Du das erläutern?
Bitte korrigiere mich, falls ich Mist reden sollte, aber ich finde, das man eine Vielzahl von Problemstellungen mit Zeigern schneller(bzw. kürzer) und eleganter lösen kann.
C# hat außer in unsafe-Kontexten keine Zeiger. Java hat gar keine Zeiger. Trotzdem sind die selben Konzepte dort genauso nutzbar. Ich versteh also nicht ganz, warum man sich wegen Pointern explizit für C++ entscheiden muss.
Das soll ja auch nicht der Hauptgrund sein, sondern nur eine Nebensache :D


Sonst ist die eigentliche Fragestellung doch gelöst, oder?

Werbeanzeige