Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Templates com Parâmetros de Tipo Padrão | Templates de Classe
Templates em C++

Templates com Parâmetros de Tipo Padrão

Deslize para mostrar o menu

É possível especificar um tipo de parâmetro padrão para um template de classe e, a partir do C++11, argumentos de template padrão também podem ser usados em templates de função. Para definir um tipo padrão, basta escrever o tipo desejado após o sinal de igual para o parâmetro do template.

main.cpp

main.cpp

123456789101112131415
#include <iostream> template <typename T = int> // `int` will be used as a default type class Box { T value; // Stores the value of type `T` public: Box(T value) : value(value) { std::cout << this->value; } }; int main() { // Type not specified // VV Box<> intBox(25.5); }

Ao executar o código acima, a saída será 25 em vez de 25.5. Isso ocorre porque o tipo padrão para a classe Box está definido como int, o que trunca a parte decimal do valor.

Note
Nota

Semelhante aos argumentos padrão de funções, se um parâmetro de template possui um argumento padrão, então todos os parâmetros de template seguintes também devem ter argumentos padrão.

Além dos parâmetros de tipo padrão, o C++ permite parâmetros de template não tipados com valores padrão. Parâmetros não tipados podem ser tipos integrais, ponteiros ou referências. Para especificar um parâmetro não tipado padrão, basta atribuir um valor padrão após o parâmetro.

array.h

array.h

123456
// `int` and `10` are default parameters template <typename T = int, size_t Size = 10> struct Array { T arr[Size]; // Array with a fixed size of `Size` }

Parâmetros padrão de template simplificam o código, reduzem a redundância e permitem que templates lidem com casos de uso típicos com esforço mínimo, possibilitando personalização quando necessário.

question mark

Quando um parâmetro de template possui um valor padrão, qual das alternativas a seguir é verdadeira?

Selecione todas as respostas corretas

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 3. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 3. Capítulo 3
some-alt