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

11

23.11.2015, 10:14

1) Wieso benutzt du in Windows Code::Blocks?
2) Benutze kein new/delete. Ist seit C++14 (bis auf eine Ausnahme auch in C++11) obsolet.
3) Kein Sleep im Mainloop bitte.

Bei dir zeigen sich jetzt schon Angewohnheiten, die dich später auf ewig verfolgen werden. Hole dir ein aktuelles Buch und studiere das durch. Übe währenddessen fleißig mit Konsolenprogrammen.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

12

23.11.2015, 10:20

1. gefällt mir vom design her besser, gibs nen grund warum ich das nicht sollte?
2. dann werde ich einmal erstelle objekte wie das obere, doch nie mehr los und es zieht weiter speicher übers ganze programm hin weg. oder nicht?
3. mach ich nie wieder, versprochen.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

13

23.11.2015, 10:25

1. gefällt mir vom design her besser, gibs nen grund warum ich das nicht sollte?

Nunja, wer unter Windows entwickelt und nicht Visual Studio verwendet, der ist echt selber schuld... ;)

2. dann werde ich einmal erstelle objekte wie das obere, doch nie mehr los und es zieht weiter speicher übers ganze programm hin weg. oder nicht?

Er wollte damit wohl darauf hinaus, dass man dafür besser std::unique_ptr verwenden würde...

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

14

23.11.2015, 10:26

Nun ja, ich würde für Event und Window überhaupt kein Heap-Objekt benutzen. Wozu auch, die beiden Dinger brauche ich von Anfang an bis zum Ende im Programm. Dasselbe gilt für Sprite und Texture in der Klasse "Test". Ob man Test selbst als Heap-Objekt braucht ist ebenfalls fraglich. Auf jeden Fall leaked die Klasse Test Speicher, indem sie Sprite und Texture auf dem Heap erzeugt, aber nur eins davon freigibt.
Dass der Sample-Code bei einem Delete direkt nach einem New crasht, finde ich sehr bedenklich. Kann es eventuell sein, dass Libs und Header-Versionen nicht zueinander passen oder etwas in der Art?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

15

23.11.2015, 10:28

In der Tat, daher auch meine initiale Frage, wieso genau hier überhaupt new und delete verwendet werden...

Nimelrian

Alter Hase

Beiträge: 1 216

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

  • Private Nachricht senden

16

23.11.2015, 10:28

Richtig. Stroustrup hält auch häufig Vorträge über das Thema; er selbst versteht nicht, wieso die Leute ihre Daten immer auf dem Heap anlegen. Der Stack ist in der überwältigenden Mehrheit aller Fälle ausreichend.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

17

23.11.2015, 10:49

Ich schätze mal das es abstürzt wenn du F drückst, damit dein Testobjekt frei gibst und einfach weiterhin die Rendermethode von Test aufrufst.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

18

23.11.2015, 11:30

Das war genau eine der Ausgangsfragen: Kommt der Code überhaupt bis dahin? Wie ich es bisher verstanden habe, soll der Code angeblich nicht bis da kommen. Das kann natürlich auch nur eine falsche Annahme des TE sein. Der Debugger wurde ja schon oft erwähnt.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Fireball

Alter Hase

Beiträge: 415

Wohnort: Werne

Beruf: Dipl. Inf.

  • Private Nachricht senden

19

23.11.2015, 12:35

Wäre das vielleicht eine Möglichkeit? Dann kann man sich das delete komplett sparen.

C-/C++-Quelltext

1
2
  auto_ptr<MyClass> p(new MyClass);
  p->DoSomething();

Nimelrian

Alter Hase

Beiträge: 1 216

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

  • Private Nachricht senden

20

23.11.2015, 12:52

Wieso auto_ptr? Wenn schon Smartpointer, dann std::unique_ptr. Und wieso Heap? Stack tut's auch.
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

Werbeanzeige