V tomto příkladu máme 2 funkce pojmenované
foo
,
které přetěžují jedna druhou. Může to způsobit neočekávané chování.
template<class T> class MyClass { public: int foo(T type); int foo(int b); }; |
Řešením je buď napsat specializované funkce, jak ukazuje níže uvedený příklad, nebo použít šablony specializovaných funkcí, které odeberou dvojznačnost z kódu.
template<class T> class MyClass { public: int fncType(T type); int fncInt(int b); }; |