![]() |
1
16
C++ 98不提供任何智能指针
它们有很多。简而言之:
(这来自Boost文档,请注意它们也有用于此类指针的容器!)
对我来说,最重要的规则是:
|
![]() |
2
1
智能指针类型是一个抽象层,用于自动处理内存的分配和释放过程,其构造函数函数,通过指针获取分配的内存及其析构函数,释放分配的内存。当然,构造函数和析构函数可以是内联的(因此没有调用它们的开销)。例如:
在C++中,间接使用指针(隐藏在类后面)是很好的。创建新智能指针的开销可以忽略不计。但是共享的指针更重,这是因为它的引用计数行为(它是引用计数)。 当我们想要使用从其他人编写的函数中接收到的原始指针时,如果这个原始指针不应该被我们自己释放,那么我们就不应该使用智能指针。 |
![]() |
3
0
没有关于何时使用智能指针的规则。更合适的是,尽可能使用智能指针。原始指针在编写良好的C++代码中是罕见的。当您收到一个原始指针时,如果您有责任解除分配它,请将它包装在一个自释放的自定义写入智能指针中。 |
![]() |
4
0
用即将到来的C++0X标准完成答案和可用的答案。这些链接提供了有关何时以及如何使用它们的示例。它还记录了共享资源和弱资源之间的关系。 http://www2.research.att.com/~bs/C++0xFAQ.html#std-shared_ptr http://www2.research.att.com/~bs/C++0xFAQ.html#std-weak_ptr http://www2.research.att.com/~bs/C++0xFAQ.html#std-unique_ptr |
![]() |
5
0
关于STL AutoPPTR,我建议阅读Habor萨特的《优秀C++书籍的作者》GuloFothWea:使用这个 Link |
![]() |
AstralHex · 矩阵乘法代码工作不正常 3 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 4 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 4 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 4 月前 |