autoptr专题

《白话C++》第9章 泛型,Page845~847 AutoPtr 模仿裸指针(未完成)

模仿裸指针: 模仿版本的AutoPtr的使用形式和普通的指针不一样,例如: struct S{int a, b, c;};void test2(){AutoPtr <S> sap; //sap的_ptr元素是一个指向S的指针。sap._ptr->a = 100; //需要通过sap._ptr来处理指针S s2 = *(sap._ptr); //同上S* tmp = sap._ptr;..

《白话C++》第9章 泛型,Page847~849 AutoPtr 允许从外部指针构造

允许从外部指针构造 这个版本的AutoPtr仍然还有很多不完美的地方,比如它在构造函数中,一定要new出一个对象,因此无法表达一个“空指针”,也无法“接管”一个已经存在的外部指针,另外,两个(同质的)AutoPtr<T>对象之间,如何赋值,靠被也未实现。 托管外来指针 让它可以托工外来的指针,暂时只要修改它的构造函数即可: template <typename T>struct Auto

《白话C++》第9章 泛型,Page842~844 9.4.2 AutoPtr

源起: C++编程中,最容易出的问题之一,就是内存泄露,而new一个对象,却忘了delete它,则是造成内存泄露的主要原因之一 例子一: void foo(){XXXObject* xo = new XXXObject;if(!xo->DoSomething())//do something出错了return;//返回(可是,糟糕,忘了delete xo呢)try{xo->DoAnothe