Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Template con Parametri di Tipo Predefiniti | Template di Classe
Template C++

Template con Parametri di Tipo Predefiniti

Scorri per mostrare il menu

È possibile specificare un tipo di parametro predefinito per un template di classe e, a partire da C++11, anche gli argomenti di template predefiniti possono essere utilizzati nei template di funzione. Per impostare un tipo predefinito, basta scrivere il tipo desiderato dopo il segno di uguale per il parametro del 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); }

Quando esegui il codice sopra, l'output sarà 25 invece di 25.5. Questo accade perché il tipo predefinito per la classe Box è impostato su int, che tronca la parte decimale del valore.

Note
Nota

Simile agli argomenti predefiniti delle funzioni, se un parametro di template ha un argomento predefinito, allora tutti i parametri di template che lo seguono devono anch'essi avere argomenti predefiniti.

Oltre ai parametri di tipo predefiniti, C++ consente parametri di template non di tipo con valori predefiniti. I parametri non di tipo possono essere tipi integrali, puntatori o riferimenti. Per specificare un parametro non di tipo predefinito, basta assegnare un valore predefinito dopo il parametro.

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` }

I parametri di template predefiniti semplificano il codice, riducono la ridondanza e consentono ai template di gestire i casi d'uso tipici con il minimo sforzo, permettendo comunque la personalizzazione quando necessario.

question mark

Quando un parametro di template ha un valore predefinito, quale delle seguenti affermazioni è vera?

Seleziona tutte le risposte corrette

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 3. Capitolo 3
some-alt