Nun hab ich gelesen das der Konstruktor der Basisklasse auch in der abgeleiteten mit aufgerufen werden muss. Bekomme immer Fehlermeldungen. Mal sinds 12 Fehler mal nur 2.. kommt drauf an wie ich die Initialisierungsliste in class Mensch "gestalte" Kann mir bitte jemand helfen?
int main() { Mensch child(12); Vater papa(child,34); cout<<papa.alter()<<endl; cout<<papa.kind().alter()<<endl;
return0; }
Im Grunde kannst du jedes Verwandschaftsverhältnis (nur) mit der Klasse Mensch nachbilden! Sofern du der Klasse Mensch Referenzen oder Zeiger auf andere Mensch Objekte verpasst mit denen du die Assoziationen ElternteilVon und VerheiratetMit abbilden kannst sind alle weiteren Verwandschaftsverhältnisse ableitbar.
Denk mal darüber nach.
MfG Spacelord -- .....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.Dieser Post wurde am 19.06.2005 um 16:18 Uhr von Spacelord editiert.
Danke, muss das erstmal nachvollziehen. Sieht fast aus wie das wa ich gepostet habe, nur das deine Initliste funktioniert. Danke. Was sagt diese const nach der Funktion aus ?
Das const sagt dem Compiler dass diese Methode das Objekt,für das die Methode aufgerufen wird, nicht verändert.Das ist z.B. dann wichtig wenn du ein Objekt hast das selber const ist. Wenn die Methode nicht als const deklariert wäre könntest du die nicht für ein const Objekt aufrufen(selbst wenn die Methode das Objekt nicht verändern würde). Wenn also eine Methode dein Objekt nicht verändert mach diese const,ansonsten schränkst du dich selber ein. Mit der const Geschichte ist es aber so ne Sache.Für den Compiler ist eine Methode const wenn das Objekt nach dem Aufruf immer noch bitweise gleich zu dem Stand vor dem Aufruf ist.Wenn du jetzt aber Zeiger als Attribute hast wird nur geprüft ob der Zeiger gleich geblieben ist und nicht ob der "Inhalt" der hinter dem Zeiger steht noch gleich ist. Es ist also nicht wirklich alles const wo const dran steht .
MfG Spacelord -- .....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
Für den Compiler ist eine Methode const wenn das Objekt nach dem Aufruf immer noch bitweise gleich zu dem Stand vor dem Aufruf ist.
Das ist so nicht ganz richtig. Schau dir mal mutable an... Und const ist ganz genau const, eben nach der Definition. -- Wer früher stirbt ist länger tot.
Der Einwand mit mutable ist natürlich berechtigt .Diesen "Sonderfall" hatte ich wohl verdrängt . Sollte für cmos im Augenblick aber auch noch nicht sooo interessant sein.
MfG Spacelord -- .....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.