Classes para vários tipos (templates)

Publicado por Perfil removido em 08/12/2004

[ Hits: 7.432 ]

 


Classes para vários tipos (templates)



Em C++ é possível criar uma classe (como uma lista ou uma pilha) que aceite diferentes tipos. Isso é feito usando templates. Para definir uma classe utilizando template faça assim:

template< class T> class teste { /* T será substituído pelo tipo */

public:
   teste(T v) { this->valor = v; };
   T valor;
   void muda_valor(T v) { valor = v; };
};

main()
{
   teste< int> ti(18); /* defino o tipo T na criação do objeto */
   teste< char> tc('h');
   string s("ola mundo");
   teste< string> ts(s);

   cout << ti.valor << endl;
   cout << tc.valor << endl;
   cout << ts.valor << endl;

   ti.muda_valor(14);
   tc.muda_valor('k');
   s = "hello world";
   ts.muda_valor(s);

   cout << ti.valor << endl;
   cout << tc.valor << endl;
   cout << ts.valor << endl;
}

Fazendo assim não é preciso definir uma classe diferente para cada tipo que você queira utilizar. E o tipo não se restringe aos nativos da linguagem. Qualquer classe pode ser utilizada como um tipo, desde é claro que ela possua as operações que você utiliza na sua classe.

Outras dicas deste autor

Configurando sua placa de som com o alsaconf

Instalando TeamViewer no Fedora 40

Como criar uma calculadora no Gambas (vídeo-aula)

Instalação do Flash Player 10 no Firefox na unha - 5 etapas

Google Chrome no Ubuntu 14.04 e Linux Mint 17

Leitura recomendada

Limpando o buffer do teclado em C

Getchar(); sendo ignorado? Não mais!

Sobrecarregamento de operadores

Como limpar a tela em C

Acessando um valor dada sua posição numa matriz bidimensional

  

Comentários
[1] Comentário enviado por jochan em 14/12/2005 - 14:41h

Muito legal, vai me ajudar bastente no meu projeto de C++ ... =)



Contribuir com comentário