Modelo

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 ++