Gabarito sobrecarregado
:upset:
Segundo um pdf da internt, para você fazer sobrecarga de gabarito é preciso fazer:
tipo f (tipo a, tipo B);
tipo f (tipo a, tipo b, tipo c);
O que vai permitir que a sobrecarga possa ser feita, é o fato das duas funções ter número de parâmetros diferentes. Logo se duas funções-gabarito tivessem o mesmo número de parâmetros teriamos erro de compilação.
Eu apliquei o conceito no programa abaixo, mas surgiram vários erros:
#include <iostream>
#include <cstdlib>
using namespace std;
template <class type1, class type2>
template <class type1, class type2,class type3>
void myfunc (type1 x,type2 y)
{
cout << x << ' ' << y << '\n';
}
int main()
{
cout << "Mostra os tipos de dado int e char* :" << endl
<< endl;
myfunc(10,"h1");
cout << endl << "Mostra os tipos de dado double e long:" << endl
<< endl;
myfunc(0.23,10L);
system ("pause");
return 0;
}
Erros:
Gabarito-fun o-sobrecarregada.cpp:13:11: error: declaration of 'class type1'Gabarito-fun o-sobrecarregada.cpp:12:11: error: shadows template parm 'class type1'
Gabarito-fun o-sobrecarregada.cpp:13:24: error: declaration of 'class type2'
Gabarito-fun o-sobrecarregada.cpp:12:24: error: shadows template parm 'class type2'
Gabarito-fun o-sobrecarregada.cpp:15:6: error: too many template-parameter-lists
Gabarito-fun o-sobrecarregada.cpp:25:19: error: 'myfunc' was not declared in this scope
Verificando os erros e confrontado com a sintae acima para sobrecarga, não estou sabendo eliminar os erros. Poderiam ajudar?
Obrigado
Discussão (4)
Carregando comentários...