Obl*_*ons 3 c++ pointers smart-pointers
指向以其他方式分配的东西在C++中是否合理安全?
到目前为止,我一直在使用STL容器(在一种情况下,一个数组,但这是另一个问题)满足我所有的动态内存需求,因此我不需要显式使用该new关键字.我也很乐意使用普通的ol' int *foo类型指针来引用事物.现在我正在阅读关于智能指针的内容(我在Java上磨口,所以我以前从未担心过这个问题)而传统的智慧似乎是"裸指针不好,不要使用它们".
那我有多麻烦?我可以安全地继续使用裸指针,只要它们指向的东西有其他破坏条件吗?这是我可以逃避的事情,但将来应该避免吗?或者这是一场灾难,我应该在匆忙之后修复?
小智 6
裸露的指针本身是安全的,这是错误的使用它们是危险的(你可以很容易被带走).智能指针非常漂亮,但有些(shared_ptr)涉及引用计数,这会导致性能损失.您应该尝试使用适用的智能指针,但AFAIK使用指针不被认为是一个可怕的错误.
在引用STL容器的成员时应该小心,因为它们的地址在重定位期间可能会发生变化,从而使您遇到奇怪的错误.
| 归档时间: |
|
| 查看次数: |
1457 次 |
| 最近记录: |