#include<memory> auto_ptr<class TYPE> name
The auto_ptr class allows the programmer to create pointers that point to other objects. When auto_ptr pointers are destroyed, the objects to which they point are also destroyed. The auto_ptr class supports normal pointer operations like =, *, and ->, as well as two functions TYPE* get() and TYPE* release(). The get() function returns a pointer to the object that the auto_ptr points to. The release() function acts similarily to the get() function, but also relieves the auto_ptr of its memory destruction duties. When an auto_ptr that has been released goes out of scope, it will not call the destructor of the object that it points to.
#include <memory>
using namespace std;
class MyClass {
public:
MyClass() { // nothing }
~MyClass() { // nothing }
void myFunc() { // nothing }
};
int main() {
auto_ptr<MyClass> ptr1(new MyClass), ptr2;
ptr2 = ptr1;
ptr2->myFunc();
MyClass* ptr = ptr2.get();
ptr->myFunc();
return 0;
}