Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The member function evaluates the expression delete myptr, but only if the stored pointer value myptr changes as a result of a function call. It then replaces the stored pointer with ptr.
void reset(
Type* _Ptr = 0
);
Parameters
- _Ptr
The pointer specified to replace the stored pointer myptr.
Example
// auto_ptr_reset.cpp
// compile with: /EHsc
#include <memory>
#include <iostream>
#include <vector>
using namespace std;
class Int
{
public:
Int( int i )
{
x = i;
cout << "Constructing " << ( void* )this << " Value: " << x << endl;
};
~Int( )
{
cout << "Destructing " << ( void* )this << " Value: " << x << endl;
};
int x;
};
int main( )
{
auto_ptr<Int> pi ( new Int( 5 ) );
pi.reset( new Int( 6 ) );
Int* pi2 = pi.get ( );
Int* pi3 = pi.release ( );
if ( pi2 == pi3 )
cout << "pi2 == pi3" << endl;
delete pi3;
}
Constructing 00311AF8 Value: 5 Constructing 00311B88 Value: 6 Destructing 00311AF8 Value: 5 pi2 == pi3 Destructing 00311B88 Value: 6
Requirements
Header: <memory>
Namespace: std