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

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

21

12.12.2015, 14:21

Was für ein Tutorial? Du solltest dir auf jeden Fall schnellstens ein anderes suchen.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

22

12.12.2015, 14:30

Wie funktioniert das mit static denn sonst?


1) Mit Smart-Pointern wäre das nicht passiert


hab mir gerade die smartpointer angeschaut, muss ich mir da jedes mal überlegen ob es ein shared, unique,oder weak sein soll,oder gibt es da irgendwie etwas was immer funktioniert?

23

12.12.2015, 15:17

Wie funktioniert das mit static denn sonst?


1) Mit Smart-Pointern wäre das nicht passiert


hab mir gerade die smartpointer angeschaut, muss ich mir da jedes mal überlegen ob es ein shared, unique,oder weak sein soll,oder gibt es da irgendwie etwas was immer funktioniert?


Vllt. solltest du dich erst isoliert etwas mit C++ beschäftigen. Es hat den Anschein, dass du direkt nach deinen ersten Konsolen-Anwendungen zur Spiele-Programmierung übergegangen bist, ohne ein grundlegendes Verständnis der Sprache zu haben.

Das soll dich bitte nicht demotivieren! Aber bedenke, dass du erst Flügel brauchst, wenn du fliegen willst; sonst landet man schnell auf der Nase :D

cojo2015

Alter Hase

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

24

12.12.2015, 15:30

hab mir gerade die smartpointer angeschaut, muss ich mir da jedes mal überlegen ob es ein shared, unique,oder weak sein soll,oder gibt es da irgendwie etwas was immer funktioniert?

Wie du schon richtig heausgefunden hast, gibt es shared, unique und weak Pointer. Im Grunde funktionieren immer shared_ptr. Hier mal ein paar Andwendungsbeispiele:
shared_ptr: Buttons in einem Menü.
unique_ptr: z.B. von einer GameState-Klasse
weak_ptr: https://msdn.microsoft.com/de-de/library/hh279672.aspx oder https://msdn.microsoft.com/de-de/library/hh279674.aspx (ist hier besser erklärt)

Ich würde dir trotzdem empfehle (wie einige andere auch), dass du erstmal SFML, SFML sein lässt und dich erstmal mir ein paar Grundlagen beschäftigst (z.B. Smartpointer oder allg. Speicherverwaltung in C++), und dann wieder zu SFML wechselst. Ich war vor 1 Jahr auch etwas schnell zu SFML gewechselt, obwohl nicht alle Grundlagen saßen. Ich habe mir dann nochmal dieses Buch gekauft und durchgearbeitet. Dort lernt man nochmal die Grundlagen aus einem anderen Blickwinkel mit direkt passenden Anwendunsbeispielen und guten Übungen. Ich hoffe, dass du was mir meiner Antwort anfangen kannst ;)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »cojo2015« (12.12.2015, 15:36)


25

12.12.2015, 15:54

Wichtig ist auch zu verstehen, was smartpointer zu lösen versuchen. Sie sind eben keine Ersetzungen für raw pointer sondern regeln einen Besitzverhältnis. shared_ptr haben seltene Anwendungsfälle.

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

26

12.12.2015, 17:07

Ich werde jetzt mal "etwas" direkter. Der Sinn dahinter ist kein Flame, sondern eine Anregung, sich selbst einzuschätzen, bevor man versucht anderen eine Hilfestellung zu geben.

hab mir gerade die smartpointer angeschaut, muss ich mir da jedes mal überlegen ob es ein shared, unique,oder weak sein soll,oder gibt es da irgendwie etwas was immer funktioniert?

Wie du schon richtig heausgefunden hast, gibt es shared, unique und weak Pointer. Im Grunde funktionieren immer shared_ptr. Hier mal ein paar Andwendungsbeispiele:
shared_ptr: Buttons in einem Menü.
unique_ptr: z.B. von einer GameState-Klasse

Meine Fresse. Lieber cojo2015, ich weiß nicht ob du, als jemand der in den letzten Monaten oft durch grundlegende Verständnisprobleme in Sachen C++ (Verständnisfrage zu delete[]) und vor allem zu Smart-Pointern (Ärger mit unique_ptr) aufgefallen bist, Rat zur Verwendung von Smart-Pointern geben sollte. Was du da schreibst, ist nämlich großer Müll.
Wieso soll ein shared_ptr besonders für Buttons in einem Menü geeignet sein? Ein shared_ptr steht für das geteilte Eigentum (shared ownership) an einem Objekt. Wieso sollte derselbe Button zwei anderen Objekten gehören? Wieso müssen die überhaupt auf dem Heap existieren?
Dasselbe gilt für den GameState. Wieso auf dem Heap?

Lieber cojo2015, bitte unterlasse es, Anfängern solch eine "Hilfestellung" zu geben. Dadurch wird bei diesen ein vollkommen falsches Fundament aufgebaut, und das hinterher wieder auszubügeln ist anstrengend und vor allem verschwendet es Zeit.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

cojo2015

Alter Hase

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

27

12.12.2015, 17:29

Wieso soll ein shared_ptr besonders für Buttons in einem Menü geeignet sein?

Das sollte nur ein Beispiel sein, denn er hat es nicht gewusst.

Wieso müssen die überhaupt auf dem Heap existieren?

Wie gesagt: Nur ein Beispiel. Natürlich kann man auch den stack verwenden.

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

28

12.12.2015, 17:47

Wieso gibst du Beispiele, die keinen Sinn machen?
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

cojo2015

Alter Hase

Beiträge: 516

Wohnort: bei mir zu Hause

Beruf: Schüler

  • Private Nachricht senden

29

12.12.2015, 17:48

Wieso gibst du Beispiele, die keinen Sinn machen?

Warum macht das kein Sinn?

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

30

12.12.2015, 17:54

Weil es keinen Grund gibt 1) den Heap dafür zu verwenden und 2) Der shared_ptr dafür vollkommen ungeeignet ist.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

Werbeanzeige