转自百度文库ADO中最重要的对象有三个:Connection、Recordset和Command,分别表示连接对象、记录集对象和命令对象。三个对象对应的智能指针分别是:_ConnectionPtr、_RecordsetPtr、_CommandPtr。ADO使用_ConnectionPtr这个指针来操...
分类:
其他好文 时间:
2015-05-23 20:01:49
阅读次数:
126
这些智能指针在设计的时候,一个关键的问题就是所有权的控制。如果把指针所指向的对象比作电视机的话,那么指针就是观众。第一个人需要看电视的时候需要打开它,没人看的时候就要保证把电视关掉。
对于std::auto_ptr,boost::shared_ptr和scoped_ptr,情况如下:
1. std::auto_ptr:auto_ptr这个种族很有趣,每次只让一个人看电视,大家可以换着看,由...
分类:
编程语言 时间:
2015-05-22 00:35:17
阅读次数:
154
tr1::shared_ptr和tr1::auto_ptr都提供一个get成员函数,返回智能指针内部的原始指针:
)operator*和operator->隐式转换至底部指针:
注意:...
分类:
其他好文 时间:
2015-05-19 22:38:07
阅读次数:
166
分类:C/C++2012-08-30 21:402017人阅读评论(2)收藏举报任何管理某资源的类比如智能指针需要遵循一个规则(The Rule of Three):如果你需要显式地声明一下三者中的一个:析构函数、拷贝构造函数或者是拷贝赋值操作符,那么你需要显式的声明所有这三者。拷贝构造函数和析构函...
分类:
编程语言 时间:
2015-05-19 12:22:02
阅读次数:
206
auto_ptr智能指针:其析构函数自动对其所指对象调用delete
若对象auto_ptr不指向某一资源,它会设为null
shared_ptr具有相同功能
但是多个shared_ptr对象能同时指向同一资源
注意:...
分类:
其他好文 时间:
2015-05-18 23:02:27
阅读次数:
160
l unique_ptr
:不允许多个指针共享资源,可以用标准库中的move函数转移指针
l shared_ptr
:多个指针共享资源
l weak_ptr
:可复制shared_ptr,但其构造或者释放对资源不产生影响...
分类:
编程语言 时间:
2015-05-18 22:57:19
阅读次数:
160
C成也指针,败也指针。确实,指针给程序员提供了很多便利和灵活性,但是不当的指针使用也会造成很多问题。
Java和C#避免了指针(虽然C#中也能使用指针,但是估计很少有人这样做),其垃圾回收机制,给程序员减轻很多管理内存的负担。为了带来指针更好的使用体验,C++中引入了智能指针的概念,其实质就是将指针的一些操作封装成类,程序员通过使用熟悉的指针运算符(-> 和 *)访问封装指针,该指针类通过运算符重...
分类:
编程语言 时间:
2015-05-16 20:39:51
阅读次数:
162
ADO接口之_ConnectionPtrADO中最重要的对象有三个:Connection、Recordset和Command,分别表示连接对象、记录集对象和命令对象。三个对象对应的智能指针分别是:_ConnectionPtr、_RecordsetPtr、_CommandPtr。ADO使用_Conne...
分类:
其他好文 时间:
2015-05-14 09:57:15
阅读次数:
123
#include
using namespace std;template
class auto_ptr
{
public:
auto_ptr(Type *d = NULL):ptr(d),own(d!=NULL){}
auto_ptr(const auto_ptr &ap)
{
ptr = ap.r...
分类:
编程语言 时间:
2015-05-13 10:18:59
阅读次数:
136