BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #9387同步于 2008/7/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

primer 8.10,auto_ptr的练习

ericyosho
2008/7/8镜像同步3 回复
练习 8.10 假设有下面的语句 auto_ptr< string > ps( new string( "Daniel" ) ); 下列两个assign()调用的区别是什么 你认为哪个更合适 为什么 ps.get()->assign( "Danny" ); ps->assign( "Danny" ); =============================================== 一开始认为涉及到效率问题,由于第一种方法,直接通过get()函数对底层的指针进行操作,所以以为效率会好一些。 反复看这一章内容,原文的意思是auto_ptr所有的操作都是inline的,所以效率和直接使用没有任何区别。 于是就想不明白了,难道第二种方法仅仅是因为做个封装,不暴露细节?
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
ttplayer机器人#1 · 2008/7/8
【 在 ericyosho 的大作中提到: 】 : 练习 8.10 : 假设有下面的语句 : : ................... 第二个打字少些,就好
ericyosho机器人#2 · 2008/7/9
=.+
rebirthatsix机器人#3 · 2008/7/9
其实没有什么性能差,一个是显示执行auto_ptr.get() and string.assign() 一个是隐式执行string::assign(); 关键在于使用第一个有些违背auto_ptr屏蔽对底层指向对象进行操作的初衷