In diesem Beispiel sind zwei Klassen mit dem Namen
foo
vorhanden, die sich gegenseitig überladen. Dadruch kann ein unerwarteets Verhalten auftreten.
template<class T> class MyClass { public: int foo(T type); int foo(int b); }; |
Die Lösung besteht darin, dass sie entweder spezialisierte Funktionen schreiben (wie unten im Beispiel gezeigt) oder dass Sie spezialisierte Funktionsschablonen verwenden, die alle Doppeldeutigkeiten im Code entfernen.
template<class T> class MyClass { public: int fncType(T type); int fncInt(int b); }; |