Creazione di istanza esplicita

La creazione di istanza esplicita consente di creare una creazione di istanze di una classe o di una funzione basata su modelli senza l'utilizzo di nel codice.Poiché questo è utile quando si creano i file di libreria (lib) che utilizzano modelli per la distribuzione, le definizioni di modello prive di istanza non vengono inserite nei file oggetto con estensione OBJ.

L'esempio seguente in modo esplicito un'istanza MyStack per int variabili e sei elementi:

template class MyStack<int, 6>;

Questa istruzione crea una creazione di istanze di MyStack senza prenotare qualsiasi archiviazione per un oggetto; il codice viene generato per tutti i membri.

L'esempio seguente in modo esplicito un'istanza solo la funzione membro del costruttore:

template MyStack<int, 6>::MyStack( void );

I modelli di funzione possono essere esplicitamente un'istanza dell'con un argomento di tipo specifico, come mostrato nell'esempio in Creazione di un'istanza del template di funzione.

Specifici di Microsoft

È possibile utilizzare extern parola chiave per impedire la creazione di un'istanza automatica dei membri.Di seguito è riportato un esempio:

extern template class MyStack<int, 6>;

Analogamente, è possibile contrassegnare i membri specifici come esterno e non creare un'istanza come segue:

extern template MyStack<int, 6>::MyStack( void );

[!NOTA]

extern la parola chiave nella specializzazione applica solo funzioni membro definite all'esterno del corpo della classe.Le funzioni definite nella dichiarazione di classe vengono considerate funzioni inline e vengono sempre creare un'istanza.

Vedere anche

Riferimenti

Modelli di funzione