this pointer - cppreference.com
Da cppreference.com.
|
|
Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate. La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui. |
<metanoindex/>
All'interno non statico funzione membro, contiene un puntatore all'oggetto classe da cui viene chiamata la funzione.
Original:
Inside non-static member function, holds a pointer to the class object from which the function was invoked.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Il tipo di puntatore è this cv T* const dove T è il nome della classe e cv si riferisce alla cv specificatori della funzione viene utilizzato il puntatore in Per esempio:
Original:
The type of this pointer is cv T* const where T is the class name and cv refers to the cv specificatori of the function the pointer is used in. For example:
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
| Function signature | Type of this
|
|---|---|
void T::foo()
|
T* const this;
|
void T::foo() const
|
const T* const this;
|
void T::foo() volatile
|
volatile T* const this;
|
void T::foo() const volatile
|
const volatile T* const this;
|
Esempio
class T { int x; void foo() { this->x = 5; // this used explicitly x = 6; // same as this->x = 6; } void foo() const { this->x = 7; // Error: *this is constant } void foo ( int x ) { // parameter x shadows the attribute with the same name this->x = x; // unqualified x refers to the parameter, but the attribute is still accessible using the this pointer } T& operator= ( const T& b ) { x = b.x; return *this; // this is often used when a reference to the current object is needed } void bar ( const T& b ) { // two ways to call class operators using this (*this) = b; this->operator= ( b ); } void bar() { // methods can be called even when there's no object // the this pointer can be seen like an additional parameter implicitly passed if ( this == NULL ) return; } }; T* pointer = reinterpret_cast<T*>(123); pointer->bar(); // bar is called with 123 (0x7B) as value for this