kfm*_*e04 11 c++ java garbage-collection smart-pointers
这只是一个学术问题(我不会在实际代码中这样做):
如果我在我的代码中普遍使用shared_ptr <>,那么行为是否等同于Java之类的gc收集语言?
如果不是,行为将如何与gc嵌入式语言不同?与gc嵌入式语言相比,哪种C++构造会产生相同的行为?
注意:在实际编码中,我更倾向于使用RAII和严格的所有权来使用任何智能指针.我也知道其他不太通用的指针,unique_ptr <>会更有效率.这个问题只是对智能指针等价的一个问题.
jal*_*alf 12
不,有几个重要的区别:
显然,第一点是杀手.如果你这样做了,你的许多资源都不会被释放,你会泄漏内存而你的应用程序就不会表现得很好.
与gc嵌入式语言相比,哪种C++构造会产生相同的行为?
没有.C++没有垃圾收集器,因为没有办法实现正确,可靠的垃圾收集器.(是的,我知道Boehm的GC,它是一个很好的近似,但它是保守的,并没有检测到所有引用,只有它可以100%肯定的.在一般的C++程序中没有办法,实现Just Works(tm)的垃圾收集器
| 归档时间: |
|
| 查看次数: |
1219 次 |
| 最近记录: |