明確具現化
明確具現化可讓您建立的樣板類別或函式的執行個體化,無需實際程式碼中使用它。 當您正在建立程式庫 (.lib) 使用範本發佈的檔案,這是很有用,因為未執行個體化的樣板定義未放入目的檔 (.obj)。
下列明確具現化MyStack的int變數和六個項目:
template class MyStack<int, 6>;
此陳述式會建立具現化MyStack而不保留任何儲存的物件; 程式碼會產生的所有成員。
下列明確產生只有建構函式成員函式:
template MyStack<int, 6>::MyStack( void );
函式樣板可以明確具現化來遮蔽它們具有特定的型別引數,如下所示的範例中函式樣板執行個體化。
Microsoft 專有的
您可以使用extern防止其成員的自動執行個體化的關鍵字。 例如:
extern template class MyStack<int, 6>;
同樣地,您可以標示為外部而且未執行個體化,如下所示的特定成員:
extern template MyStack<int, 6>::MyStack( void );
注意事項 |
---|
extern特製化中的關鍵字只套用於成員函式定義的類別主體之外。類別宣告中定義的函式視為內嵌函式,且一律會具現化。 |