SmartWin++ Problem - Templates und dyn. Polymorphismus



  • Ich würde gerne eine Liste von verschiedenen SmartWin Widget Objekten erstellen - um z.B. bei allen die Methode "setVisible" aufzurufen...

    Die Widget Klassen erben aber nicht von einer allgemeinen Widget Klasse sondern suchen sich ihre Features bei vielen kleinen Klassen zusammen. Ein WidgetStatic erbt unter anderem hier von:

    AspectVisible<  EventHandlerClass, [b]SmartWin::WidgetStatic[/b]< EventHandlerClass, MessageMapPolicy >, SmartWin::MessageMapControl< EventHandlerClass, [b]SmartWin::WidgetStatic[/b]< EventHandlerClass, MessageMapPolicy >, MessageMapPolicy > >
    

    Ich würde nun gerne eine AspectVisible Liste (z.B. ein std::vector) erstellen für mehrere Widget Typen - wenn ich die aber mit Templates parametriesier kann ich ja immer nur Objekte für ein bestimmtes Widget aufnehmen ? Wie Löse ich das Problem ?



  • Ich kenne SmartWin++ nicht, aber das Framework wird wohl eine Möglichkeit vorsehen, ähnliche Widgets gemeinsam zu speichern...?

    Ansonsten kommst du wohl nicht darum herum, dir Adapterklassen zu schreiben, welche in einer polymorphen Beziehung zueinander stehen. Somit könntest du Zeiger auf Basisklassen speichern und diese mit virtuellen Funktionen ansprechen.


Anmelden zum Antworten