当前位置: 首页 > news >正文

丽水建设厅网站专门做物理的网站

丽水建设厅网站,专门做物理的网站,php网站分类目录源码,wordpress站内统计插件一模板#xff1a; 模板不是数据类型#xff0c;只能算是一种行为集合的表示。编译器在使用模板时#xff0c;通过更换模板参数来创建数据类型。这个过程就是模板实例化(Instantiation)#xff0c; 从模板类创建得到的类型称之为特例(specialization)#xff0c;说白了就是… 一模板 模板不是数据类型只能算是一种行为集合的表示。编译器在使用模板时通过更换模板参数来创建数据类型。这个过程就是模板实例化(Instantiation) 从模板类创建得到的类型称之为特例(specialization)说白了就是创建了一个新类型。 模板实例化取决于编译器能够找到可用代码来创建特例(称之为实例化要素point of instantiation)也就是说编译器不但要看到模板的声明还要看到模板的定义。 1. 为什么类模版不能分离编译这要从模板的实例化过程说起 1以分离形式写出的模版类以tem.h和tem.cpp为例另外还有主函数main.cpp在编译main.cpp时由于只能看到模板声明而看不到实现因此不会创建新的类型但此时不会报错因为编译器认为模板定义在其它文件中就把问题留给链接程序处理。 2编译器在编译tem.cpp时可以解析模板定义并检查语法但不能生成成员函数的代码。因为要生成代码需要知道模板参数即需要一个类型而不是模板本身。 3这样链接程序在main.cpp 或 tem.cpp中都找不到新类型的定义于是报出无定义成员的错误。 另外实例化是惰性的只有用到该函数时才会去对模版中的定义进行实例化。 举一个明显的例子 .h文件 templateclass K, class V class RBTree { typedef RBTreeNodeK, V Node; public: RBTree() :_pRoot(NULL) {} ~RBTree() {} void InOrder() { _InOrder(_pRoot); coutendl; } void _InOrder(Node* _pRoot); } .cpp文件 #include RBTree.hpp templateclass K, class V void RBTreeK, V::_InOrder(Node* pRoot) { if(pRoot) { _InOrder(pRoot-_pLeft); coutpRoot-_key ; _InOrder(pRoot-_pRight); } } 这样就会产生上述问题 2. 如何解决这个问题有三种方式 1在实例化要素中让编译器看到模板定义。即写到一个文件里声明和实现放在一起 2把类的声明放在 .hpp 文件类成员函数定义放在 .cpp 文件然后在测试文件 test.cpp 文件中包含连个头文件即.hpp文件和.cpp 文件即可解决问题。 3使用export关键字。 前二种方法通常称为包含模式第三种方法则称为分离模式。第一种方法意味着在使用模板的转换文件中不但要包含模板声明文件还要包含模板定义文件这样编译器就能看到模板的声明和定义。这样做的缺点是编译文件会变得很大显然要降低编译和链接速度。第二种方法通过显式的模板实例化得到类型也就是将所有的显式实例化过程安放在另外的文件中比如tem_extend.cpp。这样新类型不是在main.cpp中产生而是在tem_extend.cpp中产生链接器就能够找到它的定义。用这种方法不会产生巨大的头文件加快编译速度而且头文件本身也显得更加“干净”和更具有可读性。但这个方法不能得到惰性实例化的好处即它将显式地生成所有的成员函数。第三种方法是在模板定义中使用export关键字剩下的事就让编译器去自行处理了。
http://www.yutouwan.com/news/296196/

相关文章:

  • wordpress资讯站电子商务网站运营流程
  • 网站建设与管理规范番禺区网站建设哪里有
  • 简单的网站开发流程图制作网页的网站
  • 做网站算法软文广告代理平台
  • 做网站邢台用dw做网站怎么给链接
  • 花店网站建设wordpress 正在建设插件
  • 学做网站要学多久wordpress 文章 自定义排序
  • 兰州网站搜索引擎优化空间设计公司网站
  • 做推广网站的文章术语深圳做网站哪家最好
  • 如何优化网站速度wordpress解析
  • 制作网站公合肥营销网站建设公司
  • 开州网站建设古风模板网
  • 网站开发温州甘肃网站建设方案服务至上
  • 100个电商平台宁波seo网络推广公司
  • 永久免费网站模板宁波网站推广专业的建站优化公司
  • 酒店网站建设 源码2015做那些网站能致富
  • 王健林亏60亿做不成一个网站21年没封直接可以进的
  • 本科专业建设网站工程认证网站的建设
  • 安康企业网站建设价格建设部网站被黑
  • 网站标题关键词用什么隔开北京外贸网站优化
  • 最好的设计师平台网站天津网站制作公司
  • 阿里云里做网站能上百度首页么免费博客网站
  • 网上如何建网站金融公司网站模板
  • 建设部网站官网证书查询网络营销与传统营销有哪些区别
  • 网站被镜像怎么办云网站制作的流程
  • 云鼎大数据888元建站泰州网站建设服务公司
  • 电子商务网站系统规划报告asp网站做消息提醒功能
  • 江西建设三类人员网站网站关键词快速排名服务
  • 菏泽营销网站建设公司网络营销的三大基础
  • 低价网站建设顺德平面设计师必看的网站