显式实例化
显式实例化可以创建模板类或函数的实例化,而不会实际使用时在代码。 由于这是有用,在创建使用模板的入库 (.lib) 文件,实例化的模板定义不放置到对象 (.obj) 文件。
以下显式实例化 int 变量和六项的 MyStack :
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 关键字仅适用于成员函数定义在类体外部。功能定义在类声明中称为 " 内联函数和始终实例化。