点击这里给我发消息 点击这里给我发消息

异常处理之auto_ptr类模板

添加时间:2013-12-7
    相关阅读: 模板
 

auto_ptr类模板是在头文件中定义的,它的构造函数接受一个指向类型属性的指针作为参数,它是一个用于封装指向分配的堆内存的指针。

例如:

#include

#include

#include

using namespace std;

class TraceHeap

{

int i;

public:

static void * operator new(size_t siz)

{

void * p =::operator new (siz);

cout<<\"yes,it’s address is \"<<P<<ENDL;< p>

return p;

}

static void operator delete (void * p)

{

cout<<\"No,it’ll died in \"<<P<<ENDL;< p>

delete []p;

}

TraceHeap(int i):i(i) {};

int GetVal() const { return i;}

[NextPage]

};

int main()

{

auto_ptr my(new TraceHeap(5));

cout<GetVal()<<ENDL;< p>

return 0;

}

//auto_ptr类模板可以很容易的用于指针数据成员。由于通过值引用的类对象总会被析构,所以当对象被析构的时候,这个对象的auto_ptr成员总是能释放它所封装的原指针。

//!!!!但是这个指针对由于抛出异常而没有完全构造的对象还是不能调用其析构函数.

//当涉及到有关异常抛出的继承类时,继承的可能抛出的错误类型或者大小只能减小或不变,但是不能增大。

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册