1.std::auto_ptr::auto_ptr
//auto_ptr example #include <iostream> #include <memory> int main () { std::auto_ptr<int> p1 (new int); *p1.get()=10; std::auto_ptr<int> p2 (p1); std::cout << "p2 points to " << *p2 << '\n'; // (p1 is now null-pointer auto_ptr) return 0; } output:
p2 points to 102.std::auto_str::~auto_ptr
3.std::auto_ptr::get
//auto_ptr::get example
#include <iostream>
#include <memory>
int main ()
{
std::auto_ptr<int> p (new int);
*p.get() = 100;
std::cout << "p points to " << *p.get() << '\n';
return 0;
}
output: p points to 100
4.std::auto_ptr::reset
//auto_ptr::reset example
#include <iostream>
#include <memory>
int main ()
{
std::auto_ptr<int> p;
p.reset (new int);
*p=5;
std::cout << *p << '\n';
p.reset (new int);
*p=10;
std::cout << *p << '\n';
return 0;
}
output: 5 10
5.std::auto_ptr::release
//auto_ptr::release example
#include <iostream>
#include <memory>
int main () {
std::auto_ptr<int> auto_pointer (new int);
int * manual_pointer;
*auto_pointer=10;
manual_pointer = auto_pointer.release();
std::cout << "manual_pointer points to " << *manual_pointer << '\n';
// (auto_pointer is now null-pointer auto_ptr)
delete manual_pointer;
return 0;
}
output:
manual_pointer points to 10