Please enable JavaScript.
Coggle requires JavaScript to display documents.
Templates - Coggle Diagram
Templates
C++ nos permite definir templates, ou seja, modelos padronizados de funções ou classes relacionadas entre si
Um template de função define um grupo de expressões para uma função usando um parâmetro ao invés de um tipo concreto
Um template de classe especfiica a definição da classe usando um parâmetro ao invés de um tipo concreto.
Podem, por exemplo, oferecer uma definição genérica para representar vários tipos diferentes de arrays. Um tipo específico só vai ser criada/definida durante a instanciação daquela classe.
Definindo um template
template<class T>
Template de uma função em que o parâmetro T é um tipo que vai ser usado na definição, pode ser qualquer tipo, até fundamental.
-
Para classes, os métodos de uma classe template são parametrizados através do tipo T, cada um deles é, portanto, uma função template.
Instanciação é performada implicitamente quando a classe é utilizada pela primeira vez: gera todo o código de máquina para aquele tipo e só depois cria o objeto.
Nenhuma conversão de tipo implícita é feita em um template, todos os argumentos passados devem ser do mesmo tipo dos parâmetros.
O código de máquina só é criado na hora da instanciação, não quando o template é criado.
Templates não reduzem o tamanho do arquivo objeto, mas são úteis para o programador. São checados duas vezes para erro, durante sua definição e durante sua instanciação.
STL
A biblioteca de templates padrões do C++ inclui vários tipos de algoritmos, classes e funções globais.
-
Só precisam ser codados uma vez, provém uma solução única para vários problemas, erros causados por múltiplos códigos são evitados.
A classe string é um tipo de template, uma instanciação do char.