Definição – o que significa o modelo?
Um modelo é um recurso de programação C ++ que permite operações de função e classe com tipos genéricos, o que permite funcionalidade com diferentes tipos de dados sem reescrever blocos de código inteiros para cada tipo.
Os modelos são um utilitário valioso em C ++, especialmente quando usados com sobrecarga de operador e herança múltipla. Os modelos reduzem o esforço associado à codificação de diferentes tipos de dados em um único conjunto de código e reduzem os esforços de depuração.
Definirtec explica o modelo
C ++ fornece os seguintes dois tipos de modelos usados para implementar construções gerais, como listas, filas, vetores e pilhas:
- Modelo de classe: assemelha-se a uma definição de classe regular, mas é prefixado pelo seguinte: modelo , seguido pela declaração do corpo da classe, incluindo dados de membro e funções. As declarações e definições da função de membro do modelo de classe estão no mesmo arquivo de cabeçalho. Os modelos de classe C ++ são mais adequados para classes de contêiner.
- Gabarito de função: implementado por meio de parâmetros de gabarito, que é um tipo de parâmetro especial usado para passar um tipo como um argumento de função. Assim, a funcionalidade pode ser adaptada a mais de um tipo ou classe sem repetir todo o código. O formato para declarar um template de função com um parâmetro de tipo é um template function_declaration ou template function_declaration. Não há diferença entre as palavras-chave class e typename.
Os modelos geralmente requerem verificação de tipo em tempo de compilação.
O código gerado por modelo pode ser substituído fornecendo definições especiais para tipos específicos, o que é conhecido como especialização de modelo. Uma versão especial de uma função para um determinado conjunto de argumentos de modelo é conhecida como especialização explícita. Um modelo de classe especializado por um subconjunto de seus parâmetros é conhecido como especialização de modelo parcial. A especialização completa ocorre f cada parâmetro é especializado.
Esta definição foi escrita no contexto de C ++