virtuelle Templatefunktion in abstrakter Basisklasse



  • HH 🕶 (Abkürzung für 'Hai Hackers', 'Crackers' sind ausdrücklich ausgenommen),

    würde gerne wissen, ob das Folgende standardkonform ist:
    Kon- und Destruktor lasse ich mal weg.

    class a
    {
    template<typename T>
    virtual int StartUp(T ebbes); 
    
    template<typename T>
    virtual int MachWeiter(T wasanderes) = 0;
    }
    
    class b:public a
    {
    template<typename T>
    virtual int StartUp(T ebbes){ ... Redefinition .. }; 
    
    template<typename T>
    virtual int MachWeiter(T wasanderes){return Funktion_TuWas(wasanderes);};
    }
    

    Danke
    arni



  • template und virtual schließen sich gegenseitig aus - unter Umständen weißt du ja zur Compilezeit des betreffenden Moduls noch nicht, wie viele Konkretisierungen der Methode es gibt, von daher kannst du keine Pointer darauf speichern.



  • @0xdeadbeef
    Das hatte ich schon irgendwie vermutet.
    Wenn man 'virtual' vergisst, dann isses aber doch okay, die Templatefunktion zu redefinieren und dann mit

    a::Templatefunktion....
    

    oder

    b::Templatefunktion....
    

    zu referenzieren, oder ist das falsch?
    Thx
    arni



  • arni schrieb:

    @0xdeadbeef
    Das hatte ich schon irgendwie vermutet.
    Wenn man 'virtual' vergisst, dann isses aber doch okay, die Templatefunktion zu redefinieren und dann mit

    a::Templatefunktion....
    

    oder

    b::Templatefunktion....
    

    zu referenzieren, oder ist das falsch?
    Thx
    arni

    klar, alles ist ok solange kein Eintrag in der Vtable gebraucht wird.



  • @ arni:

    Du kommst net zufällig aus Hesse, 😃
    weil "ebbes" kennt mer nur in Hesse!!!

    Gruß aus Darmstadt



  • @ColdAsIce
    Darmstadt? is ja witzich, sitze hier in Traisa in der Nähe vom Forsthaus zur Eisernen Hand und dem Golfclub und bin täglich am hacken.
    wie klein die Welt doch ist ( besonders seit dem es Internet gibt).
    mfg
    arni


Anmelden zum Antworten