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
cout< return 0; } //auto_ptr类模板可以很容易的用于指针数据成员。由于通过值引用的类对象总会被析构,所以当对象被析构的时候,这个对象的auto_ptr成员总是能释放它所封装的原指针。 //!!!!但是这个指针对由于抛出异常而没有完全构造的对象还是不能调用其析构函数. //当涉及到有关异常抛出的继承类时,继承的可能抛出的错误类型或者大小只能减小或不变,但是不能增大。