1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Überladene Methode im ursprünglichen Konstruktor aufrufen?

Discussion in 'Programmieren' started by daboom, Feb 8, 2008.

Thread Status:
Not open for further replies.
  1. daboom

    daboom Megabyte

    Hi,

    bin gerade am herumcoden an einem MAC-Protokoll für einen CC2420 Funkchip, der von einem ATMega128 gesteuert wird.

    Den Code, bzw. eine simple Test- und Rumspielversion davon, habe ich ursprünglich in C geschrieben, hat auch ganz gut ge*****.

    Jetzt habe ich angefangen, das ganze in C++ umzubauen, sprich das MAC-Protokoll als Klasse zu kapseln usw.

    Ich hab da jetzt aber folgendes Problem (Ich versuch's erstmal einfach zu schildern):

    Ich schreibe eine Klasse A, die eine virtuelle Methode m hat.
    Im Konstruktor von A wird m aufgerufen (unqualified, also ohne this oder namespace). m macht sozusagen noch Init-Arbeit, die von später ableitenden Klassen hinzugefügt werden können soll (???).

    Dazu schreibe ich nun noch eine Klasse B, die von A ableitet und die Methode m überschreibt. Außerdem ruft der Konstruktor von B den von A auf (mittels B::B(typ1 par1, typ2 par2, ...) : A(par1, par2 ...)).

    Nun wird aber niemals die überladene Methode von B, sondern immer nur die ursprüngliche von A aufgerufen.

    Geht sowas generell nicht (überladene Methoden im Kontstruktor aufrufen) oder hab ich an irgendwas nicht gedacht?

    Danke schon mal!

    Grüsze
     
  2. daboom

    daboom Megabyte

    Naja, wenn mir keiner antwortet, tu' ich's halt selbst...

    Problem hat sich erledigt, weil der Code, der in der überladenen Methode ausgeführt werden sollte, auch getrost hinterher (also nach dem ursprünglichen Konstruktor) ausgeführt werden kann.

    Ich glaube inzwischen, dass mein Vorhaben generell nicht möglich ist, da der Konstruktor der Ursprungsklasse ja mehr oder weniger in die Zukunft blicken können müsste.

    Danke trotzdem für die massenhaften Hilfestellungen ... :ironie:

    Grüsze
     
Thread Status:
Not open for further replies.

Share This Page