All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
如何利用PHP和CSS改变网页文字大小_php资料_编程技术
分析:中文搜索引擎百度排名初步观察_JavaScript技术_编程技术
ASP.Net2.0,GridView,多列排序,显示排序图标,分页_[Asp.Net教程]
SQL,Server,中易混淆的数据类型_[SQL,Server教程]
不用图像也能构造圆角框_[Html教程]
很多人喜欢PHP:论,Web,2.0,时代PHP的地位_php资料_编程技术
asp.net动态生成html页面(简明代码)_[Asp.Net教程]
浅谈SQL,Server,2008中的行压缩_mssql学习_编程技术
在datagrid中求和的代码(c#、vb.net)_[Asp.Net教程]
得到全部RedioButton项及被选项的值_[Asp.Net教程]
Reading number is top 10 pictures
More attractive than sora aoi2
Absolutely shocked. National geographic 50 animal photographys1
NeedWallpaper11
邪恶搞笑内涵图
The Soviet union swimsuit exposure in the 70 year3
乳娘帕梅拉安德森2
猫眯也疯狂
BingBingFan apple dew point photo gallery1
Fan bingbing black wings for platform and DanLuoWang believes beauty1
性感丰满身材火爆de美女2
Download software ranking
尖东毒玫瑰A
美女游泳记
传奇私服架设教程-chm
C++编程教程第三版
Boxer's Top ten classic battle7
软件工程思想
Photoshop 8.0图象编辑软件
Boxer vs Yellow5
1400篇各类破解文章
White deer villiage
delv published in(发表于) 2014/1/8 7:03:00 Edit(编辑)
More,Effective,C++之智能指针_[Asp.Net教程]

More,Effective,C++之智能指针_[Asp.Net教程]

More Effective C++之智能指针_[Asp.Net教程]


智能指针具有非常强大的能力,谨慎而明智的选择能带来极大的好处。我不否认智能指针的能力,虽然我在之前的否认过auto_ptr。可能由于我自身能力的限制,体会不到auto_ptr的好处,但这样的可能性我觉得已经不大了。但auto_ptr是最简单的智能指针,在它的周围存在大量的作品,这些作品包括Boost、Loki、ACE等等,但是可惜的是目前没有一个我能够说我很熟悉,那么本篇只是作为一个入门,在此基础上,应当阅读Boost、Loki、ACE相关源码。

  Smart Pointer的核心是实现


template
T& SmartPointer::operator*() const;
template
T& SmartPointer::operator->() const;

  Smart Pointer的构造和析构是一门艺术,由此而衍生出很多不同类型的Smart Pointer。千万不要指望Smart Pointer的表现象原生指针,虽然可以通过隐式转换来实现它,然而往往带来的后果是灾难性的。

  Meyers给出了一个优雅的隐式转换的办法:


template
class TestTemplate
{
public:
TestTemplate(T* ptr = 0):pointee(ptr){}
template
operator TestTemplate()
{
return TestTemplate(pointee);
}
private:
T* pointee;

};

  可惜这样的程序在VC6中无法通过编译,似乎VC6不支持将novirtual member function声明成templates,但是VC7可以。这里地方需要注意四点技术:

  (1)函数调用的自变量匹配规则

  (2)隐式型别转换函数

  (3)template functions的暗自具现化

  (4)member function templates。我承认,这有点太深入了。

  在智能指针中const和non-const之间的转化也是很大的学问,我看了Meyers使用unions来做实现。这不是我喜欢的做法,我觉得风险还是比较大的。

  Smart Pointer值得使用么?这不是我可以回答的问题,然而在以往的经验中,我似乎很少用到。也许是我的孤陋造成了这样的局面,但在更深层次来说,我需要阅读更多的Smart Pointer的实现。而且更加重要的是需要学会对Smart Pointer的调试,这似乎并不简单。
作者:韩羽 来源:blog





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.