Udostępnij za pośrednictwem


Jawne tworzenie wystąpienia

Możesz użyć jawnego wystąpienia, aby utworzyć wystąpienie klasy lub funkcji szablonu bez faktycznego użycia jej w kodzie. Ponieważ jest to przydatne podczas tworzenia plików biblioteki (.lib), które używają szablonów do dystrybucji, nie są umieszczane w plikach obiektów (.obj).

Przykłady

Ten kod jawnie tworzy wystąpienie MyStack zmiennych int i sześciu elementów:

template class MyStack<int, 6>;

Ta instrukcja tworzy wystąpienie MyStack bez rezerwowania żadnego magazynu dla obiektu. Kod jest generowany dla wszystkich członków.

Następny wiersz jawnie tworzy wystąpienie tylko funkcji składowej konstruktora:

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

Możesz jawnie utworzyć wystąpienie szablonów funkcji przy użyciu określonego argumentu typu, aby je ponownie zadeklarować, jak pokazano w przykładzie w utworzeniu wystąpienia szablonu funkcji.

Możesz użyć słowa kluczowego extern , aby zapobiec automatycznemu tworzeniu wystąpienia elementów członkowskich. Przykład:

extern template class MyStack<int, 6>;

Podobnie można oznaczyć określone elementy członkowskie jako zewnętrzne i nie są tworzone wystąpienia:

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

Za pomocą słowa kluczowego extern kompilator może wygenerować ten sam kod wystąpienia w więcej niż jednym module obiektu. Należy utworzyć wystąpienie szablonu funkcji przy użyciu określonych jawnych parametrów szablonu w co najmniej jednym połączonym module, jeśli jest wywoływana funkcja. W przeciwnym razie podczas kompilatora zostanie wyświetlony błąd konsolidatora.

Uwaga

Słowo extern kluczowe w specjalizacji dotyczy tylko funkcji składowych zdefiniowanych poza treścią klasy. Funkcje zdefiniowane wewnątrz deklaracji klasy są traktowane jako funkcje wbudowane i są zawsze tworzone wystąpienia.

Zobacz też

Szablony funkcji