Destruktor mit Parameter

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Destruktor mit Parameter

Beitrag von naums » So Jun 22, 2014 5:50 pm

Hallo.

Eine kurze Frage, kann ich Destoren mit Parametern haben in C++ oder nicht? Und wie rufe ich die dann auf?

Code: Alles auswählen

bla::~bla( bool foobar )
{
    if (foobar)
        printf ("foobar");
}
MfG

Edit: Wer schreiben kann, ist klar im Vorteil.
.globl truth
truth:
mov r0, #42
mov pc, lr

xerion21
Beiträge: 162
Registriert: Mo Jul 08, 2013 3:37 pm

Re: Destruktor mit Parameter

Beitrag von xerion21 » So Jun 22, 2014 5:55 pm

meines Wissens nach, kann man Destruktoren keine Parameter mitliefern.

EDIT:
Man kann Destruktoren keine Parameter mitliefern ;)

Gruß

Benutzeravatar
naums
Beiträge: 740
Registriert: Sa Jan 02, 2010 10:40 pm
Kontaktdaten:

Re: Destruktor mit Parameter

Beitrag von naums » So Jun 22, 2014 7:14 pm

Vielen Dank.
.globl truth
truth:
mov r0, #42
mov pc, lr

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Destruktor mit Parameter

Beitrag von Xin » So Jun 22, 2014 7:40 pm

naums hat geschrieben:Eine kurze Frage, kann ich Destoren mit Parametern haben in C++ oder nicht? Und wie rufe ich die dann auf?
Leider nicht, ich vermisse sie auch gelegentlich.

Du könntest eine "bool destructed" verwenden, die dem Destruktor sagt, ob das Objekt noch existiert bzw. er überhaupt handeln muss und Dir dann Methoden mit "destruct( ... )" erstellen, wobei der Destruktor nur this->destruct() aufruft, wenn destructed == false ist.

So wird das Objekt grundsätzlich abgebaut, aber wenn Du this->destruct( Parameter ) aufrufst, kannst den Abbau beeinflussen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Architekt
Beiträge: 172
Registriert: Sa Mai 24, 2014 12:04 pm

Re: Destruktor mit Parameter

Beitrag von Architekt » So Jun 22, 2014 9:56 pm

Wo würde man so etwas denn auch brauchen?

Benutzeravatar
oenone
Beiträge: 223
Registriert: Do Sep 01, 2011 2:42 pm
Wohnort: Bremen
Kontaktdaten:

Re: Destruktor mit Parameter

Beitrag von oenone » Mo Jun 23, 2014 11:41 am

Bitte darauf achten, dass während dem Destruktor keine Exceptions geworfen werden sollten.

Benutzeravatar
Architekt
Beiträge: 172
Registriert: Sa Mai 24, 2014 12:04 pm

Re: Destruktor mit Parameter

Beitrag von Architekt » Mo Jun 23, 2014 12:09 pm

In C++11 sind alle Destruktoren noexpect. Schmeißt du doch eine Exception, dann bricht dein Programm eben mit Terminate ab.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Destruktor mit Parameter

Beitrag von Xin » Di Jun 24, 2014 8:05 am

Architekt hat geschrieben:Wo würde man so etwas denn auch brauchen?
Im Prinzip überall da, wo Du statisch (also fest in das Programm eingebaut) weißt, dass Du den Destruktor anders nutzen möchtest: Zum Beispiel in eine Logdatei des Log-Objektes noch einen speziellen Text (z.B. eine Fehlerstatistik) reinschreiben, der normalerweise fehlt.

Muss man diesen von Hand reinschreiben, muss das überall da passieren, wo das Objekt zerstört wird. Ein überladnerer Destruktor wäre da schon schön... (ohne gleich unterschiedliche Datentypen verwenden zu müssen)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten