加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C++ 类模板的显式实例化(转自msdn)

(2013-04-08 17:25:50)
标签:

it

显示实例化

分类: C

显式实例化可以创建模板类或函数的实例化,而不会实际使用时在代码。 由于这是有用,在创建使用模板的入库 (.lib) 文件,实例化的模板定义不放置到对象 (.obj) 文件。

MyStack for int variables and six items:" xml:space="preserve">以下显式实例化 int 变量和六项的 MyStack :


template class MyStack;

MyStack without reserving any storage for an object; code is generated for all members." xml:space="preserve">此语句创建 MyStack 的实例化不保留对象的任何存储;代码的所有成员生成。

以下显式实例化仅构造函数成员函数:


template MyStack::MyStack( void );

Function Template Instantiation." xml:space="preserve">函数模板可以通过变量将它们显式实例化特定类型参数,如在 函数模板实例化的示例所示。

extern keyword to prevent the automatic instantiation of members." xml:space="preserve">可以使用 extern 关键字防止成员的自动实例化。 例如:


extern template class MyStack;

同样,可以标记特定成员作为外部和未实例化如下所示:


extern template MyStack::MyStack( void );
http://i.msdn.microsoft.com/dynimg/IC101471.gif说明

extern keyword in the specialization only applies to member functions defined outside of the body of the class." xml:space="preserve">在专用化的 extern 关键字仅适用于成员函数定义在类体外部。功能定义在类声明中称为 " 内联函数和始终实例化。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有