Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

visual c++ 5.0 Vererbungs Problem

chaosatbrain / 4 Antworten / Baumansicht Nickles

Also das ist etwas kompliziert aber ich werde es versuchen (die Syntax ist blödsin ok)


Ich habe 2 Klassen klasse A und klasse B: klasse B ist von A abgleitete


klasse A hat funktion a1, a2, a3 , a4 ok. Klasse B hat die funktion B1


nun ruft ich in B1 a1 (und geht damtit nach A->a1)  auf,  geht und macht sinn. Ok


nun wird in der Klasse B a1 neu defieniert. so jetzt höre ich auf zu labern und nun kommt das Progblem.


wenn ich wieder in der funtion B1 a1 (B->a1) aufrufe komme ich in die neu definirte funktion (B->a1) Ok


aber wenn ich einen alten funtions aufruf aus a4 habe sprint der mir in das Alte a1 (A-a1) funktion was ich nicht will er soll in die neue (B-a1). was er könnt wenn ich auch a4 neu defienieren würde. aber das will ich nicht. 


vieleicht geht es nicht anders weil wege rechten und ist nicht und geht nicht und so weiter aber wenn eine vererbte Klasse alle funtionenen der Alten übernimt als wär sie in ihr selber geschrieben wie ich es gelernt habe dann sollte ich a1 überschreiben können und es müsten alle funtion der Alten A Klasse die neue B->a1 anspringen 


danke für Antwort


 

bei Antwort benachrichtigen
mr.escape chaosatbrain „visual c++ 5.0 Vererbungs Problem“
Optionen
nun wird in der Klasse B a1 neu defieniert...
... aber wenn ich einen alten funtions aufruf aus a4 habe sprint der mir in das Alte a1 (A-a1) funktion was ich nicht will er soll in die neue (B- a1)
Wenn du in der basis (A) und der abgeleiteten (B) klasse die neue variante von a1 haben willst, dann definier sie doch in der basisklasse (A). Die abgeleitete bekommt die dann ja auch automatisch!

... aber wenn eine vererbte Klasse alle funtionenen der Alten übernimt als wär sie in ihr selber geschrieben wie ich es gelernt habe dann sollte ich a1 überschreiben können und es müsten alle funtion der Alten A Klasse die neue B->a1 anspringen ...
Aufrufe von a1 in der klasse B rufen die überschriebene neue variante auf. Aufrufe aus der basisklasse verwenden selbstverständlich die alte definition. Überschreiben wirkt sich auf die aktuelle und alle abgeleiteten (bis zu einer erneuten überschreibung) klassen aus. Evtl. liegt hier auch eine verwechselung mit virtuellen funktionen vor, wobei da der zugriff auf eine instanz einer abgeleiteten klasse über einen zeiger / eine reference auf eine basisklasse erfolgt. Das wird aber aus der beschreibung nicht ersichtlich.
Ich glaube da sind noch einige lerneinheiten zu c++ nötig!

mr.escape
"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen
chaosatbrain mr.escape „ Wenn du in der basis A und der abgeleiteten B klasse die neue variante von a1...“
Optionen

Och Da sind noch ne ganze Mengen Lerneinheiten nötig glaube ich.
(Man soll im Leben das Zauber nimals aufzugeben.)
Danke für die klare negative Antwort.
Sagmal weis du Zuverlässiger weise eine guten Artikel über Virtuelle funktion im Netz.


bei Antwort benachrichtigen
mr.escape chaosatbrain „Och Da sind noch ne ganze Mengen Lerneinheiten nötig glaube ich. Man soll im...“
Optionen

Ich persönlich habe dafür ein buch (von '95), würde aber einfach google (o.ä.) mit den entsprechenden suchbegriffen (z.b. pure, virtual, tutorial, c++) füttern und dann stöbern.

mr.escape

"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen
chaosatbrain mr.escape „Ich persönlich habe dafür ein buch von 95 , würde aber einfach google o.ä....“
Optionen

hätte ja sein können das du was empfehlen kannst
Danke
du hast mich immerhin davor bewahrt etwas zu suchen was garnicht geht.
tschau

bei Antwort benachrichtigen