当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

<b>C++箴言:从模板中别离出参数无关的代码</b>[VC/C++编程]

赞助商链接



  本文“<b>C++箴言:从模板中别离出参数无关的代码</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

 templates(模板)是节俭时间和避免代码反复的极好办法.没必要再输入20个类似的 classes,每一个包含 15 个 member functions(成员函数),你可以输入一个 class template(类模板),并让编译器实例化出你需求的 20 个 specific classes(特定类)和 300 个函数.(class template(类模板)的 member functions(成员函数)只有被利用时才会被隐式实例化,所以只有在每一个函数都被实际利用时,你才会得到全部 300 个member functions(成员函数).)function templates(函数模板)也有类似的魅力.没必要再写很多函数,你可以写一个 function templates(函数模板)并让编译器做别的的事.这不是很重要的技术吗?

是的,不错……有时.假如你不当心,利用 templates(模板)大概招致 code bloat(代码膨胀):反复的(或几近反复的)的代码,数据,或二者都有的二进制码.后果会使源代码看上去紧凑而整洁,但是目标代码臃肿而疏松.臃肿而疏松很少会成为时髦,所以你需求理解若何避免这样的二进制扩大.

你的主要工具有一个有气势的名字 commonality and variability analysis(通用性与可变性解析),但是关于这个设法并没有什么有气势的东西.即便在你的职业生涯中历来没有利用过模板,你也应当从始至终做这样的解析.

当你写一个函数,并且你意识到这个函数的实现的某些部份和另一个函数的实现本质上是相同的,你会仅仅复制代码吗?当然不.你从这两个函数中别离出通用的代码,放到第三个函数中,并让那两个函数来调用这个新的函数.也就是说,你解析那两个函数以找出那些通用和改变的构件,你把通用的构件移入一个新的函数,并把改变的构件保存在原函数中.近似地,假如你写一个 class,并且你意识到这个 class 的某些构件和另一个 class 的构件是相同的,你不要复制那些通用构件.作为替换,你把通用构件移入一个新的 class 中,然后你利用 inheritance(担当)或 composition(复合)使得本来的 classes 可以拜候这些通用特点.本来的 classes 中差别的构件——改变的构件——仍保存在它们本来的位置.


  以上是“<b>C++箴言:从模板中别离出参数无关的代码</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .