Beispiel

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);
};

Lösung

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);
};