Zum Inhalt springen

Verhalten von Konstruktoren und Destruktoren bei Mehrfachvererbung ?


Wiesel

Empfohlene Beiträge

Hi,

ich würde mich freuen, wenn ihr mir sagen könntet wie sich Konstruktoren und Destruktoren bei Mehrfachvererbung verhalten.

Vielleicht könnt ihr mir überhaupt ein wenig über Mehrfachvererbung erzählen.

Ich würde mich echt freuen.

Vielen Dank schonmal.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich weiß nicht so ganz ob du auf was spezielles rauswillst.

Aber bei der Mehrfachvererbung hast du ja ganz normale Klassen, die halt nur Methoden und Attribute von mehreren Klassen erben. Beim C-Tor und beim D-Tor ist AFAIK kein Unterschied zu einer vaterlosen Klasse. Wenn du keinen erstellst wird ein standardtisierter erstellt und wenn du einen erstellst macht er halt das was du sagst.

Allgemeines zur Mehrfachvererbung:

Die neue Klasse erbt halt alle entsprechenden Methoden und Attribute aus allen angegebenen Klassen. Da ist soweit ich weiß kein großer Unterschied zur normalen Vererbung, außer das es sehr sehr unübersichlich werden kann. Aus diesem Grund sagen auch viele das man Mehrfachvererbung vermeiden sollte und in der MFC wurde sie z.B. auch nicht verwendet. Da ich selber aber so gut wie gar nicht mit Klassen arbeite kann ich das nicht beurteilen und aus diesem Grund sind auch alle Angabne ohne Gewähr;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

ich würde mich freuen, wenn ihr mir sagen könntet wie sich Konstruktoren und Destruktoren bei Mehrfachvererbung verhalten.

Vielleicht könnt ihr mir überhaupt ein wenig über Mehrfachvererbung erzählen.

Ich würde mich echt freuen.

Vielen Dank schonmal.

Ich kann mir denken, warauf du hinaus willst, da ich selbst mal vor diesem Problem stand.

Bei Mehrfachvererbung wird ohne explizite Angabe in der Konstruktion immer die Elternklasse zuerst erzeugt, die in der Vererbungsdeklaration zuerst steht, bei der Destruktion genau umgekehrt:


#include <iostream>


class CVater

{

  public:

	CVater(void) {std::cout<<"Vater"<<std::endl;}

	~CVater(void) {std::cout<<"Vater tot"<<std::endl;}

};


class CMutter

{ 

  public:

	CMutter(void) {std::cout<<"Mutter"<<std::endl;}

	~CMutter(void) {std::cout<<"Mutter tot"<<std::endl;}

};


class CKind: public CVater, CMutter 

{

};



void main(void)

{

	CKind Kind;

}

Ausgabe:

Vater

Mutter

Mutter tot

Vater tot

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...