Compartir a través de


Creación de instancias explícita

La creación de instancias explícita le permite crear una instancia de una clase o una función con plantilla realmente su uso en el código.Esto es útil cuando se crea archivos de biblioteca (.lib) que utilizan plantillas para la distribución, las definiciones de plantilla sin instancia no se colocan en los archivos objeto (.obj).

A continuación crea explícitamente instancias MyStack para las variables de int y seis elementos:

template class MyStack<int, 6>;

Esta instrucción crea una instancia de MyStack sin reservar ningún almacenamiento para un objeto; se genera el código para todos los miembros.

A continuación crea explícitamente instancias sólo la función miembro de constructor:

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

Plantillas de función explícita crear instancias redeclaring los con un argumento de tipo específico, como se muestra en el ejemplo de Instancia de una plantilla de función.

Específicos de Microsoft

Puede utilizar la palabra clave de extern para evitar la creación automática de miembros.Por ejemplo:

extern template class MyStack<int, 6>;

De igual forma, puede marcar miembros específicos es externo y no creado instancias como sigue:

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

[!NOTA]

La palabra clave de extern en la especialización sólo se aplica al extremo definido de funciones miembro del cuerpo de la clase.Las funciones definido en la declaración de clase se consideran las funciones inline y se crean instancias siempre.

Vea también

Referencia

Plantillas de función