Enviado em 05/07/2015 - 19:59h
Galera,Qual a Função do Apontador this em c++?,Nao to conseguindo entender esse conceito.
agradeço desde já!
agradeço desde já!
Enviado em 05/07/2015 - 19:59h
Enviado em 07/07/2015 - 14:57h
class SomeClass {
private:
int val;
public:
SomeClass(int new_val): val(new_val) { }
void SomeFunc(int x){
/* Implicitamente equivalente a “this->val+=x” */
val+=x;
}
SomeClass &operator=(int other_val);
}; Para todos os efeitos, é como se o endereço do objeto fosse passado como argumento de todas as funções-membros da classe, até mesmo daquelas que não recebem parâmetros. (E, na verdade, é isso mesmo o que o compilador faz por trás das cortinas: ele transformaria algo parecido com obj.SomeFunc(10) em SomeClass::SomeFunc(&obj, 10).)SomeClass &SomeClass::operator=(int other_val){
val=other_val;
return *this;
} Um artigo que explica mais detalhadamente pode ser encontrado em http://en.cppreference.com/w/cpp/language/this.Enviado em 05/07/2015 - 20:16h
Um exemplo básico, mas em suma, ele aponta para os atributos da classe, e não para as variaveis da funcao.
class Classe{
int x, y, z;
char a, b, c;
public:
Classe(){
this->x = 0;
this->y = 0;
this->z = 0;
this->a = 'a';
this->b = 'b';
this->c = 'c';
}
Classe(int x, int y, int z, char a, char b, char c){
// Define os atributos da classe com os paramentros passados
this->x = x;
this->y = y;
this->z = z;
this->a = a;
this->b = b;
this->c = c;
}
void setX(int x){
this->x = x;
}
int getX(){
return this->x;
}
};
Entre na sua conta para responder.