huyc

导航

2011年10月25日 #

接力,智能指针也麻烦

摘要: C++的指针也不是很麻烦的东西,但是无数的人都说麻烦,弄了个智能指针来管理数据,原本就该小心的指针操作顿时变得需要耐心,细心而有毅力……核心问题在于,智能指针的引用计数是要通过拷贝函数或者构造函数传递的,表面上看,+1-1=0,但是实际上不完全是这么回事,如果将对象分别包装两次,那这个对象也会被释放两次。问题是智能指针计数为0时的副作用——它会释放掉这个对象,这就导致了指针使用上的歧义,明明没有释放,但莫名其妙的就没了,而且如果整个程序都用智能指针的话,跟踪出来哪里实际delete了指针可能很困难。另外存在的一个问题也很明显,如果将一个栈指针包装到智能指针里,释放的时候指不定出什么事情,但是却 阅读全文

posted @ 2011-10-25 18:38 huyc 阅读(215) 评论(0) 推荐(0) 编辑