全站资讯检索:
 
您现在的位置: 猫头鹰病毒资讯网 >> 系统安全 >> 系统安全 >> 文章正文
巧妙利用成员模板函数为类留下后门
作者:佚名    文章来源:网络收集    点击数:    更新时间:2007-9-28

如果你的类需要扩展功能,除了修改源码之外,你也可以从这个类派生一个类来对这个类作扩充。比如有如下一个类。 class cls { public: int fun( int a) { //一些处理 return 0; } }; 类cls有一个函数fun能针对一个int型的数据进行一些必要的动作。现在假如,要对这个cls类进行功能扩充。让它能针对一个double型的数据进行一些动作。第一种扩充方法是修改类的源码如下: class cls { public: int fun( int a) { //一些处理 return 0; } int fun( double a) { // 一些处理 return 0; } }; 经过对类cls源码的修改,cls现在有了针对的double功能了。可是这种改源码的方法。会影响到其它的使用到这个cls类的地方。为了降低这种影响,可以采用从cls类再派生新类的做法,如下: class cls2: public cls { public: int fun( double a) { //一些处理 return 0; } }; 经过对派生,现在cls2这个类扩展了cls的功能。现在cls2可以针对int和double两种数据类型而做必要的处理了。可是这种通过派生新类的扩展,不能使以前就使用cls的用户直接从中受益。这些用户想要使用这个新扩展的功能,就必需修改自己的代码来,添加对cls2的适应。 如果象上面的这种功能扩充,要是进行多几次的话,采用第一种方法,就会经历多次cls类的代码修改,采用第二种方法,就会产生多次派生过程。象cls3,cls4等等。而且采用第二种方法还有一个非常大的不足。那就是派生类不能访问基类的私有成员。假如扩充出来的功能在进行处理时要对cls中的一些私有成员有所依赖,就不能采用第二种扩展方法。 从以上的弊端来看,这两种功能扩展的方法都不是好方法。 下面我们再来说一种进行功能扩展的方法。要采用这种方法,就需要在cls类在设计时就留出扩展口。现在我们重新设计cls类如下: class cls { public: //把要传入的数据的地址转为void型的, //用type来表明进行处理时要对arg进行什么样的转换 int fun( void* arg, int type) { switch(type) { case 0: //做针对int型数据的处理 break; default: break; } return 0; } }; 经过重新设计的cls类,现在要进行功能扩展的话,只需要在它的函数fun中多加一条case就行了,很方便了。但是这样的设计是脆弱的。函数fun的两个参数arg和type,非常的不安全,很容易出现搭配错误。看来我们还要寻找更好的办法。于是我们再次修改我们的cls类如下: class cls { public: template< typename t> int fun( t& arg) { //一些处理 return 0; } }; 这一次的cls类的模板成员函数fun,可以经得起功能扩充了。扩充它的途径是特化这个成员模板函数。例如现在要对cls进行针对double的处理的扩展,只需对fun进行double类型的特化如下。 template <> int cls::fun(double& arg) { //针对double的一些处理 return 0; } 特化的过程没有动过cls类的一分一毫,但我们的功能扩展却安全的完成了,这才是我们想要的方便的,安全的功能扩展方法。
文章录入:菜猫    责任编辑:菜猫 
 热点文章
跑跑卡丁车和瑞星帐号保…
安全基础知识系列之防范…
开机时弹出对话框C:\PRO…
网管限制上网用户权限的…
木马病毒查找与清除实战
“杀软克星”病毒使电脑…
利用 Windows 命令行保护…
制作一个百毒不侵的系统
六个步骤即可防范ARP地址…
如何清除局域网中的ARP病…
最新文章
 
相关文章
征途木马(Trojan.PSW.ZhengTu)详细介绍
拔营起寨 针对插入式木马的清除方法
菜鸟安全知识:认识局域网病毒七大特点
近期危险病毒卤猪活动频繁
2007年上半年十大网游盗号木马黑榜揭晓
随时保障系统安全五步搞定补丁管理部署
新蠕虫病毒狂吃系统资源让电脑速度变慢
微软杀毒软件Forefront不被企业用户看好
驱逐威胁 六把利剑向僵尸网络头上砍去
杀毒软件中主动防御新技术全面介绍
专家谈反击AV终结者病毒的“麻雀战法”
2007十大Web安全漏洞跨站脚本攻击居首位
相关评论
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
::发表评论::
姓 名:* (必填项)
E-mail: QQ:
评 分: 1分 2分 3分 4分 5分
评论内容:
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 评论人需对自己在使用评论过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 游客发表评论须经管理员审核后才能发表。
  • 评论内容只代表个人观点,与本网站立场无关。
 
设为首页 | 收藏本站 | 关于我们 | 联系我们 | 刊登广告 | 版权声明 | 友情链接 | 网站地图
猫头鹰反病毒资讯网所有信息来自互联网及网友提供,如侵犯了你的权益,请来信告知,我们将立即删除!
Copyright © 2007-2008 MoToYi.com All rights reserved
本站为你提供病毒木马的防治方案,专杀工具和防护软件的下载,系统及网络的安全技巧,手机病毒发展趋势.