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

Hengstli

Treue Seele

  • »Hengstli« ist der Autor dieses Themas

Beiträge: 147

Wohnort: Dettenheim

  • Private Nachricht senden

1

09.10.2005, 14:58

Wie funktioniert dass mit dem Destruktor in Dev C++?

Hallo!
Ich wollte gerade einen Destruktor im Dev C++ Compiler erstellen.
Leider ruft der Compiler ihn nicht auf, liegt dass vielleicht an der falschen Schreibweise?
P.S. Hab Listing 7.7 aus dem Buch von Heiko eingegeben und die Meldung "Destruktor wurde aufgerufen" wurde nicht angezeigt.

babelfish

Alter Hase

Beiträge: 1 222

Wohnort: Schweiz

Beruf: Informatiker

  • Private Nachricht senden

2

09.10.2005, 17:52

schreibst du den Destruktor auch richtig?

mit dem ~ Zeichen?

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

3

09.10.2005, 18:12

Das ist auch ein dummes Beipiel (sry, heiko).

DAs Programm ist darauf ausgelegt das das Programm wartet, auch wenn es beendet ist. (alos nach dem return 0;). Wenn du nun aber eine Wartefunktion machst wie z.B. eine Eingabe, funktioniert das schon so nicht. Ganz einfach weil der Destruktor erst am Ende der Funktion aufgerufen wird.

Hengstli

Treue Seele

  • »Hengstli« ist der Autor dieses Themas

Beiträge: 147

Wohnort: Dettenheim

  • Private Nachricht senden

4

09.10.2005, 19:45

Das heißt ich kann die Meldung für den Destruktor theoretisch erst sehen wenn dass Programm schon längst beendet ist.

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

5

09.10.2005, 20:58

ja eigentlich schon, den deine Klasse terminiert ja erst wenn sie nicht mehr gebraucht wird, wenn als die Funktion zu ende ist, also der Gültigkeitsbereich aufhört. Wenn du die in ne Main gepackt hast, hhast du eben den Salat, wenn dein Compiler nicht von selber nach der Main Funktion hällt.

Und das macht der ja eigentlich bei DevCpp net ^^.

Was su machen kannst, ist ein LOG System schreiben. Also die Meldungen in ne Datei. Dann müssteste das auch sehen.... wenn des ordentlich machst. Mit Visual Cpp kannst du auuch die Meldungen direkt an den Debugger schicken....

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

6

09.10.2005, 22:10

geht auch einfacher...

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
main
{
if(1)
{
klasse k;
}
cin>>a;
return 0;
}
so hat man das prob nicht
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

09.10.2005, 22:16

Geht noch einfacher... lass das "if(1)" weg.

C-/C++-Quelltext

1
2
3
4
5
main {
    {klasse k;}
    cin>>a;
    return 0;
}

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

8

09.10.2005, 22:19

Ich war mir nicht sicher ob der Kompiler dann die Glütigkeitseben rauslässt
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Sicaine

unregistriert

9

10.10.2005, 07:48

Block ist Block : )

Aber welcher Gültigkeitsbereich herscht bei nem if ohne Blockklammern?

if()
i = 0;

?

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

10

10.10.2005, 08:25

Das i = 0; ist auch so in einem Block....

Werbeanzeige