•
Usando
o Ponteiro This
Todo objeto tem
acesso ao seu próprio endereço através do ponteiro this.
O this é usado para prover referência tanto para os membros de
dados tanto para as funções de um objeto. Ele pode ser usado explicitamente.
Um uso para o this é
evitar que um objeto seje atribuído a si próprio, pois isso causa
danos no programa.
Um outro uso para este ponteiro é habilitar o chamadas em cascata de
funções membro.
#include <iostream>
class numeros {
public:
numeros( int = 0 );
numeros &atribuir( int );
void imprimir();
private:
int x;
};
numeros::numeros( int a
)
{
x = a;
}
numeros
&numeros::atribuir( int a )
{
x = a;
return *this; //
habilita encadeamento
}
void numeros::imprimir()
{
std::cout << x << std::endl;
std::cout << this->x << std::endl;
std::cout << (*this).x << std::endl;
}
int main()
{
numeros n;
n.imprimir();
n.atribuir(
20 ).imprimir(); // encadeando
chamadas de funções membro
std::cin;
return 0;
}
Observe que nestas
linhas, imprimimos uma variável com this. Um com o operador -> ( seta
). E outro com o ponteiro.
std::cout
<< this->x << std::endl;
std::cout << (*this).x << std::endl;
Nesta linha:
n.atribuir(
20 ).imprimir(); // encadeando
chamadas de funções membro
Temos que tomar cuidado,
pois a ordem deve ser essa ( atribuir, imprimir ), por que imprimir é
não retorna uma referencia para n se for colocado antes,
teremos um erro de sintaxe.
Perguntas??? Email
|