Nesse exemplo, temos duas funções com o nome
foo
que sobrecarregam uma à outra. Isso pode causar comportamento inesperado.
modelo<classe T> classe MinhaClasse { público: int foo(T tipo); int foo(int b); }; |
A solução é escrever funções especializadas, como o exemplo abaixo demonstra, ou usar modelos de funções especializadas que removam qualquer ambiguidade do código.
modelo<classe T> classe MinhaClasse { público: int fncType(T tipo); int fncInt(int b); }; |