Templates mit Typenbeschränkung



  • Hallo *,

    die FAQ und die Suche gibt nichts her, also probier ichs mal:

    Ich möchte ein template für eine Methode schreiben:

    template <typename T> void a(T* t){
        //irgendwas wofür der Typ T wichtig ist
    }
    

    Wie macht man es am geschicksten, nur Typen der Klasse A und deren abgeleitete Klassen zuzulassen? Vermutlich geht das so in nicht, aber Überladen innerhalb der Klasse A geht leider nicht.
    Gibt es so etwas, oder einen geeigneten alternative Mechanismus, außer, die Methoden für alle Methoden per Hand zu schreiben?



  • Wenn du nur eine Klasse und ihre Kinder zulassen willst, benötigst du kein Template:

    void a(A* t)
    {
      ...
    }
    

    (das nimmt Objekte vom Typ A und alle davon abgeleiteten Klassen an)



  • Ja stimmt eigentlich. Man denkt halt immer zu kompliziert 🙄
    Danke trotzdem 👍


Anmelden zum Antworten