#define_CRT_SECURE_NO_WARNINGS
#include<iostream>
usingnamespacestd;
template<classT>
classAuto_ptr
{
public:
Auto_ptr(T*_x):x(_x)
{}
Auto_ptr(Auto_ptr<T>&s):x(s.x)
{
s.x=NULL;
}
Auto_ptr&operator=(Auto_ptr<T>&s)
{
x=s...
分类:
编程语言 时间:
2016-03-26 08:49:48
阅读次数:
263
template<classT>
structDel
{
voidoperator()(constT*ptr)
{
cout<<"Del"<<ptr<<endl;
deleteptr;
}
};
template<classT>
structFFF
{
voidoperator()(constT*ptr)
{
cout<<"delete[]"<<endl;
delete[]ptr;
}
};
structFree/..
分类:
编程语言 时间:
2016-03-23 23:52:53
阅读次数:
433
auto_ptr与scoped_ptr的实现见本人的上篇博客。三、shared_ptrshared_ptr的实现原理是通过引用计数来实现,只有当引用计数为1时才释放空间,否则只需将引用计数减1.拷贝和赋值将引用计数加1,具体代码如下:template<typenameT>
classSharedPtr
{
public:
SharedPtr();
..
分类:
其他好文 时间:
2016-03-23 23:48:50
阅读次数:
210
unique_ptr的成员函数在上一篇博客中几乎全部涵盖,其实还有一个很有踢掉,即std::unique_ptr::get_deleter字面已经很明显了,就获得deleter:
Returns the stored deleterThe stored deleter is a callable object. A functional call to this object with a sin...
分类:
编程语言 时间:
2015-12-26 13:29:22
阅读次数:
491
1、shared_ptr:一种计数指针,被指向的对象在引用计数为0时删除。它表示共享的所有权(负责对象的删除销毁)。需要包含,下同。// 定义删除器struct Deleter{public: void operator() (Base *p) { cout p1(n...
分类:
编程语言 时间:
2015-12-06 01:47:46
阅读次数:
208
条款18 让接口容易被正确使用,不易被误用记住:★“促进正确使用”的办法包括接口的一致性,以及与内置类型的行为兼容★“阻止误用”的办法包括建立新类型、限制类型上的操作,束缚对象值,以及消除客户的资源管理责任(即类的设计者应先发制人)。★tr1::shared_ptr支持定制型删除器。这可防范DLL问...
分类:
其他好文 时间:
2015-11-05 10:34:36
阅读次数:
179
以对象管理资源之后,某些资源不允许被复制,这时对象应该被private声明,为了资源在最后一次使用之后被释放应该使用shared_ptr并且给出对应的删除器:
注意:...
分类:
其他好文 时间:
2015-05-18 23:02:13
阅读次数:
187
??
shared_ptr是一个引用计数智能指针,用于共享对象的所有权。它可以从一个裸指针、另一个shared_ptr、一个auto_ptr、或者一个weak_ptr构造。还可以传递第二个参数给shared_ptr的构造函数,它被称为删除器(deleter)。删除器用于处理共享资源的释放,这对于管理那些不是用new分配也不是用delete释放的资源时非常有用。shared_ptr被创建后,就可以...
分类:
编程语言 时间:
2015-05-05 12:35:00
阅读次数:
179
初学python,遇到了关于python关于内存的小问题,就简单的叙述下,如果有不同意见,欢迎一起讨论~
1.引用计数
python类似java是有垃圾回收机制的语言,所以我们不需要像c++一样通过析构函数来手动释放内存,
但是python也同样提供了__del__释放方法。在一个对象的引用计数为0时,会被自动调用,那么先来说说
引用计数吧。
#!/usr/bin/env...
分类:
编程语言 时间:
2015-04-30 21:57:57
阅读次数:
254
Shared_ptr允许当智能指针被建立起来是指定一个资源释放函数绑定于智能指针身上,也就是说在shared_ptr被初始化的同时也可以指定其管理的资源的释放函数。Shared_ptr提供的某个构造函数接受两个实参:一个是被管理的指针,另一个是引用次数变为0时将被调用的“删除器”。Shared_ptr构造函数坚持其第一个参数必须是个指针。它支持定制型删除器。
缺省情况下C++以by val...
分类:
编程语言 时间:
2014-12-24 21:33:06
阅读次数:
217