begin process at 2012 05 29 16:40:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

PROB avec pointeur THIS


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

PROB avec pointeur THIS

mercredi 25 août 2004 à 10:16:35 | PROB avec pointeur THIS

jfk20004


Salut,
tout ce que je sais à propos du pointeur this:
-c'est un pointeur sur l'adresse d'un objet
-il permet des appels en cascade de fonctions

quelqu'un peut il m'expliquer à quoi cela sert d'avoir
l'adresse d'un objet et ce qu'est reellement un appel en
cascade.
Si il y a une autre signification de this,merci de me la
donner.
Pouvez vous me donner un exemple d'utilisation.
MERCI bonne prog
mercredi 25 août 2004 à 10:28:24 | Re : PROB avec pointeur THIS

djl

pour faire un appele en cascade, utile pour les expression avec operateur, il faut que l'operateur retourne l'adresse (une reference) sur l'objet
donc toujours return *this;
mercredi 25 août 2004 à 11:12:17 | Re : PROB avec pointeur THIS

magic_Nono

Membre Club
pour bcp d'élements visuels (Win32 & MFC)
un pointeur sur l'objet parent ou celui a modifié est demandé

on fait alors svt appel à this

exemples : m_tooltip.Create(this);
pChoixDeveloppement->Create(IDD_DCHOIX_DEVELOPPEMENT,this);


Magic Nono: l'informagicien!
mercredi 25 août 2004 à 14:59:15 | Re : PROB avec pointeur THIS

leprov

Réponse acceptée !
on vous demande une explication simple a prori, compliquez pas les choses, ou donnez des explications plus detaillées. mo quand je pose mes questions api, on me donne des reponses comme ca ca m'aide pas.
quand tu crées une classe, cette classe a des fonctions membres. parfois, une fonctions membre a besoin d'utiliser "l'objet lui meme". en fait, ton objet est constitué par ses données membres, mais parfois tu as besoin de dire "l'objet entier et non pas ses membres".
par exemple, lorsque tu réécrie l'opérateur d'affectation, tu ne dois toujours vérifier que tu ne fais pas une autoaffectation (c'est a dire que dans ton programme tu ne fait pas obj = obj, car ca fait planter), donc la premiere ligne de ton operateur = doit verifier que l'adresse de ton objet est différente de l'adresse du parametre (pour etre plus clair voici le code, en reprenant l'exemple de djl qui etait bien) :

type operateur = (const type & obj)
{
if (this == &obj) return *this;

//recopie des membres:
membre1 += obj.membre1;
//ceci est equivalent a
//this->membre1 += obj.membre1;
membre2 += obj.membre2;

return *this;
}


voila j'espere qu'ainsi c'est plus clair.
et petit message a tout le monde, vous vous savez, ca vous semble evident, si on vous demande qqch, c'est que c'est obscur, donnez un bout de code clair expliqué clairement svp (je dis ca en esperant que ce soit ce que j'ai fait ici....du moins j'ai essayé)
mercredi 25 août 2004 à 17:17:25 | Re : PROB avec pointeur THIS

djl

tu as entierement raison, le mieux c'est de lire la theorie et de s'entrainer à faire des bidouillage ou toujours faires des classes en exercices ...

this est l'adresse de l'hinstance, dans une fonction membre il est connue car c'est l'adresse de l'hinstance qui est en quelque sorte un parametre caché de ta fonction

par exemple

struct Foo
{
int a , b;

void bar()
{
this->a = 5; // identique à a = 5
// car this represente l'adresse de
// l'hinstance sur laquel s'apliquera
// la fonction

b = *(int *)this; // equivalent à b = a

a = *(int *)(this + sizeof a); // equivalent à
// a = b;
}
};
ces exemples ne servent à rien et sont dangereux (d'ailleur je n'ai pas tester, me dire si ya erreur), à prendre uniquement pour exemple, autrement c'est un passe droit

en gros une fois que tu as compris que this est une adresse,tu peux appliquer tout ce tu connais de l'arithmetique des pointeurs/adresses en c



Cette discussion est classée dans : objet, adresse, donner, pointeur, cascade


Répondre à ce message

Sujets en rapport avec ce message

Donner une adresse à un pointeur... [ par anosan ] Salut,J'aimerais savoir comment spécifier à un pointeur quelle adresse il doit pointer (sachant que cette adresse n'est pas celle d'une variable!).Mer Objet et pointeur, souci [ par TuxOnline ] Bonjour j'ai un petit souci pour l'envoie de l'adresse d'un pointeur.Voila j'ai donc une classe CMAnifestation. Dans cette classe se trouve un objet v PETITE QUESTION : Objet, pointeur ou référence???? [ par eupeup ] Bonjour à tous, j'ai une petite question, et si quelqu'un pouvait me répondre se serait sympa... Donc en fait j'ai une classe contenant diverse chos Problème pointeurs toujours pareils [ par Roro8883 ] Bonjour à tous, y'a un truc que je comprends pas à propos des pointeurs dans le code suivant :   int value = 33;   int* pvalue = &value;         // Af Question simple, STL c++, ( indexation d'objet ) [ par Wiiip ] Bonjour, merci, Je suppose que ce n'est pas bien compliqué, et que l'on doit pouvoir faire cela facilement avec la stl. Je cherche à faire un index po Disparition de pointeurs sur classes derivees [ par Natural M ] Bonjour a tous !Alors voilà, j'ai un petit probleme de pointeurs sur classes derivées qui disparaissent des la sortie de leur espace de construction.- pointeur et adresse [ par nannouuD ] salut a tous,estce que quelqu'un pourra me renseigner sur la signification de cette ecriturestd::complex (*W)[M] = &Z[k][0];sachant les declaration su pointeur de pointeur de pointeur [ par am1150 ] Salut, quelqu'un peut-il me dire pourquoi à partir de la 3emme adresse de **a est égale à 0? code : char* EnerconTextAlTest3(char* NamePark,int Nu Mémoire partagée et pointeur [ par darsh99 ] Bonjour,J'essai de faire passer un tableau dynamique, un pointeur donc, d'un programme à un autre, l'adresse est bien passée et les champs non dynamiq Comment donner des couleurs a un objet (polygone) [ par ValToutCourt ] BonjourJe travaille sur un projet utilisant la librairie graphique Xlib.J'aimerais remplir de couleur un polygone crée avec la fonction XDrawLines.


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales