autoptr1.cpp

来自「一些STL的使用范例」· C++ 代码 · 共 49 行

CPP
49
字号
//autoptr1.cpp
//展示auto_ptrs转移拥有权的行为

//By phoenixinter
//On 11/23/2004

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

/* define output operator for auto_ptr
 * -print  object value or NULL
 */

template <class T>
ostream& operator << (ostream& strm, const auto_ptr<T>& p)
{
	//does p own an object?
	if(p.get()==NULL)
		strm<<"NULL";
	else
		strm<<*p;
	return strm;
}

int main()
{
	auto_ptr<int> p(new int(42));
	auto_ptr<int> q;

	cout<<"after initialization:"<<endl;
	cout<<"p: "<<p<<endl;
	cout<<"q: "<<q<<endl;

	q=p;
	cout<<"after assigning auto pointers:"<<endl;
	cout<<"p: "<<p<<endl;
	cout<<"q: "<<q<<endl;

	*q+=13;				//change value of the object q owns
	p=q;
	cout<<"after change and reassignment:"<<endl;
	cout<<"p: "<<p<<endl;
	cout<<"q: "<<q<<endl;
	
	system("pause");
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?