📄 autoptr2.cpp
字号:
//autoptr2.cpp
//展示const auto_ptr的特性
//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()
{
const auto_ptr<int> p(new int(42));
const auto_ptr<int> q(new int(0));
const auto_ptr<int> r;
cout<<"after initialization:"<<endl;
cout<<"p:"<<p<<endl;
cout<<"q:"<<q<<endl;
cout<<"r:"<<r<<endl;
*q=*p;
//*r=*p; //ERROR:undefined behavior
*p=-77;
cout<<"after assigning values:"<<endl;
cout<<"p:"<<p<<endl;
cout<<"q:"<<q<<endl;
cout<<"r:"<<r<<endl;
//q=p; //ERROR at compile time
//r=p; //ERROR at compile time
system("pause");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -