Effective C++ 学习笔记(九)

auto_ptr的替代方案是“引用计数型智慧指针(RCSP)”,所谓RCSP也是智能指针,持续追踪共有多少对象指向某笔资源,并在无人指向它时自动删除该资源。

RCSP无法打开环状引用(如两个其实已经没被使用的对象彼此互指,因而好像还处在“被使用”状态)。

tr1::shared_ptr<Investment>  pInv(createInvestment());//调用factory函数

                                                                                       //使用pInv一如以往。

                                                                                      //经由shared_ptr析构函数自动删除pInv。


void  f()

{


std::tr1::shared_ptr<Investment> pInv1(createInvestment());   //pInv1指向createInvestment返回物。

pInv2(pInv1);//pInv1和pInv2指向同一个对象

pInv1=pInv2;//同上,无任何改变

}


auto_ptr和tr1::shared_ptr两者都在其析构函数内做delete而不是delete[]动作,意味着在动态分配而得的array身上使用auto_ptr或者tr1::shared_ptr是个馊主意。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值