thisthisDans une méthode d'instance le mot clé this représente l'addresse de l'instance. Une bonne pratique : faire précéder tout accès à un attribut d'objet par this->
struct A{
int a;
A* addresse(){
return this; // this ici est de type A*
}
void set (int v){
this->a = v; // équivalent à a = v
}
};
int main(){
A obj = {1};
A* p = obj.addresse();
obj.set(3);
}
Un constructeur est une méthode qui est implicitement appelée lors de toute définition d'un objet de la classe.
Lors de sa définition, l'identifiant utilisé doit être l'identifiant de la classe et aucun type de retour ne doit être indiqué.
On peut transmettre des valeurs au constructeur entre acollades.
struct A{
int a;
A (int b, int c){
printf("création A\n");
this->a = b * c;
}
}
int main(){
A obj{3,4}; //affiche "Création A"
// A obj(3,4);
}
MaClasse obj{} : Création d'un objet / appel au constructeur sans paramètre.
MaClasse obj() : Déclaration de fonction sans paramètre.