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

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

11

01.09.2004, 14:20

C(++) hat keinen Garbadge Collector. Einer der Hauptgründe, warum die Entwicklung unter C(++) relativ langsam ist.
"Games are algorithmic entertainment."

AC

Frischling

  • Private Nachricht senden

12

01.09.2004, 15:37

Zitat von »"DragonMaster"«

Das ist richtig. Aber die Klasse erfüllt trotzdem die Kriterien die Patrik und ich bereits angesprochen haben. Es wird nur Automatisiert, gemacht werden muss es aber dennoch ;)


natürlich wird es gemacht. da_oAsch hat aber kein delete in seinem code.

AC

Frischling

  • Private Nachricht senden

13

01.09.2004, 15:42

Zitat von »"da_oAsch"«

Genügt es auch wenn ich z.b. ein objekt habe in dem mehrer mit new angelegte Variable existieren nur das objekt selbst delete? oder muss ich jede einzelne Variable deleten?


das musst du auch selbst machen. üblich ist es, die deletes in den destruktor des klasse zu packen.

14

01.09.2004, 15:52

Zitat von »"da_oAsch"«

Also gibts da nicht so nen Grabage-Collector (oder wie die routine heißt) wie in Java der mir den Müll wegräumt.


Zitat von »"Osram"«

C(++) hat keinen Garbadge Collector. Einer der Hauptgründe, warum die Entwicklung unter C(++) relativ langsam ist.
Meinst? Ja sicher man muss halt immer darauf aufpassen, das man auch alles Löscht. Aber der Garbadge Collector ist im Prinzip ja nichts anderes als ein Memory Manager. Die Adressen müssen irgendwo Registriert werden damit man sie am Ende des Programms auch hat. Oder seh ich da jetzt was falsch?

Zitat von »"da_oAsch"«

wenn ich wirklich alles was mit new angelegt wurde wegräumen muss ist das ja haufen arbeit.
Natürlich ist es was Arbeit. Aber so viel nun auch wieder nicht. An den 5 Buchstaben wirst schon nicht sterben ;)

Zitat von »"da_oAsch"«

Genügt es auch wenn ich z.b. ein objekt habe in dem mehrer mit new angelegte Variable existieren nur das objekt selbst delete? oder muss ich jede einzelne Variable deleten?

Wenn der Destruktor deines Objektes den Rest erledigt ist das kein Problem.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

15

01.09.2004, 16:13

das hilft weiter, danke sehr...


Zitat

Wenn der Destruktor deines Objektes den Rest erledigt ist das kein Problem.



d.h. wenn ich einen destruktor in einem objekt hab der alles im objekt löscht (sagen wir mal BLABLA heißt unser objekt) dann muss ich um alles korrekt freizugeben nur mehr das objekt selber löschen:

z.B.: delete(BLABLA);

oder unter Davids TBEngine:
TB_SAFE_DELETE(BLABLA);

Osram

Alter Hase

Beiträge: 889

Wohnort: Weissenthurm

Beruf: SW Entwickler

  • Private Nachricht senden

16

01.09.2004, 16:24

Ich schrieb:

Zitat


C(++) hat keinen Garbadge Collector. Einer der Hauptgründe, warum die Entwicklung unter C(++) relativ langsam ist.



Um es vielleicht nochmal klarer zu fassen: Wenn ich ein Projekt in 'ner Sprache mit GC in 3 Jahren schreibe, brauche ich in C(++) mindest 3.5 Jahre, wenn ich wirklich alle Speicherlecks beheben will..

Dragonmaster schrieb:

Zitat


Meinst? Ja sicher man muss halt immer darauf aufpassen, das man auch alles Löscht.


Und das kann beliebig kompliziert werden, wenn Objekte an einer Stelle erzeugt und an vielen benutzt werden.

Zitat


Aber der Garbadge Collector ist im Prinzip ja nichts anderes als ein Memory Manager. Die Adressen müssen irgendwo Registriert werden damit man sie am Ende des Programms auch hat. Oder seh ich da jetzt was falsch?


Ja, aber das läuft automatisch.
"Games are algorithmic entertainment."

17

01.09.2004, 16:30

Zitat von »"Osram"«

Und das kann beliebig kompliziert werden, wenn Objekte an einer Stelle erzeugt und an vielen benutzt werden.
Das stimmt. Da muss man immer höllisch aufpassen. Aber man kann dieses Problem schnell mit einer Referenzierung vereinfachen. Aber hast schon recht. Es kann sehr komplex werden.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige