TN004: Strumento di Template C++

Questa nota descrive MFC classe template questioni e lo strumento di espansione del modello MFC TEMPLDEF.

Il problema

MFC utilizza classi template per implementare le classi standard di raccolta. Classi template sono classi che possono essere espansa basate su un argomento di tipo specificato dall'utente. Per le classi MFC standard di raccolta, le classi in AFXCOLL.H e loro implementazioni sono già pre-expanded per te. Per creare le proprie classi di raccolta per il proprio tipo, è possibile utilizzare AFXTEMPL.H che contiene la matrice, elenco e modelli di classe mappa utilizzando la sintassi di modello standard C++. Lo strumento TEMPLDEF è fornito solo per compatibilità con le versioni precedenti (nel caso in cui si usavano per generare classi personalizzate insieme nelle versioni precedenti).

Lo strumento TEMPLDEF

Lo strumento TEMPLDEF è un expander modello. TEMPLDEF utilizza una sintassi simile alla sintassi del linguaggio ANSI. Per poter utilizzare TEMPLDEF, si deve costruire in primo luogo, molto simile a qualsiasi altro campione. In questo esempio viene fornito solo per compatibilità con le versioni precedenti, poiché con questa versione di Visual C++, veri modelli C++ sono pienamente supportati come lo sono le classi MFC di modello che li utilizzano (vedere le classi CArray, CListe CMap )

Un buon modo per iniziare è esaminando quattro.Classi CTT modello fornite con MFC (trovato in esempio StringUtilities programmazione MFC TEMPLDEF sottodirectory). Il MKCOLL.File batch BAT fornisce esempi di sintassi della riga di comando dello strumento TEMPLDEF. La forma generale della sintassi della riga di comando è modellata in C++ typedef della classe template equivalente. Ad esempio,

typedef CLinkedListlt;CMyObj > CMyLinkedList

diventa

TEMPLDEF "CLinkedListlt;CMyObj > CMyLinkedList "LINKLIST.CTT MYLIST.H MYLIST.INL MYLIST.CPP

Le classi di modelli MFC sono leggermente più complicate di questo esempio, prendendo un numero di parametri di modello Boolean costante che permettono diversi leggermente diverse varianti di raccolte di essere ampliato. Consultare il TEMPLDEF campione per maggiori dettagli sul programma TEMPLDEF e le opzioni della riga di comando per utilizzando le classi modello fornito.

&Note tecniche per numero |nbsp; Note tecniche per la categoria

Index