编辑代码

#include <iostream>
#include <memory>
using namespace std;

template<class T>
auto_ptr<T> print(auto_ptr<T>);

int main() {
	auto_ptr<int> p(new int);
	*p = 369;
    
    //print(p);//将打印369,但此时返回auto_ptr指针丢失,p所指的内存资源释放

	p=print(p);
	*p = 963;
	print(p);
	return 0;
}
template<class T>
auto_ptr<T> print(auto_ptr<T> p) {
	if (p.get() == NULL)
		cout << "NULL"<<endl;
	else
		cout << *p<<endl;
	return p;
}