Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Assignment operator.
auto_handle<_element_type> % operator=(
auto_handle<_element_type> % _right
);
template<typename _other_type>
auto_handle<_element_type> % operator=(
auto_handle<_other_type> % _right
);
Parameters
- _right
The auto_handle to be assigned to the current auto_handle.
Return Value
The current auto_handle, now owning _right.
Example
// msl_auto_handle_op_assign.cpp
// compile with: /clr
#include <msclr\auto_handle.h>
using namespace System;
using namespace msclr;
ref class ClassA {
protected:
String^ m_s;
public:
ClassA(String^ s) : m_s(s) {
Console::WriteLine( "in ClassA constructor: " + m_s );
}
~ClassA() {
Console::WriteLine( "in ClassA destructor: " + m_s );
}
virtual void PrintHello() {
Console::WriteLine( "Hello from {0} A!", m_s );
}
};
ref class ClassB : ClassA {
public:
ClassB( String^ s ) : ClassA( s ) {}
virtual void PrintHello() new {
Console::WriteLine( "Hello from {0} B!", m_s );
}
};
int main()
{
auto_handle<ClassA> a;
auto_handle<ClassA> a2(gcnew ClassA( "first" ) );
a = a2; // assign from same type
a->PrintHello();
auto_handle<ClassB> b(gcnew ClassB( "second" ) );
b->PrintHello();
a = b; // assign from derived type
a->PrintHello();
Console::WriteLine("done");
}
in ClassA constructor: first
Hello from first A!
in ClassA constructor: second
Hello from second B!
in ClassA destructor: first
Hello from second A!
done
in ClassA destructor: second
Requirements
Header file <msclr\auto_handle.h>
Namespace msclr