En este ejemplo, tenemos dos funciones llamadas
foo
que se se cargan una sobre otra. Esto puede producir un comportamiento inesperado.
template<class T> class MyClass { public: int foo(T type); int foo(int b); }; |
La solución consiste en escribir funciones especializadas, tal como muestra el ejemplo que figura más abajo o en utilizar plantillas de función especializadas que eliminan cualquier ambigüedad del código.
template<class T> class MyClass { public: int fncType(T type); int fncInt(int b); }; |