comment récuperer l'adresse d'un objet à partir d'un methode (static)

comment récuperer l'adresse d'un objet à partir d'un methode (static) - C++ - Programmation

Marsh Posté le 17-02-2004 à 23:33:39    

bonsoir à tous,
 
je cherche à récuperer l'adresse d'un objet !! je m'explique:
 
g une classe A, qui contient deux methodes, une non statique, l'autre statique
 
.h
class A
{
 void f1();
 static void f2();
}
 
void f1()
{
//ici je peut utilisé la commande this pour recuperer l'adresse de l'objet sur lequel est appliqué la methode, car c'est une methode non statique
 
cout << this << endl; //par exemple qui va m'afficher l'adresse
}
 
void f2()
{
comme la methode f2() est static je ne plus utiliser le this, puisqu'il ne pointe plus implicitement sur l'objet
}
 
est ce quelqu'un pourrai m'expliqué comment faire pour la methode f2() afin d'avoir le meme resultat que dans f1() svp ?merci !!

Reply

Marsh Posté le 17-02-2004 à 23:33:39   

Reply

Marsh Posté le 17-02-2004 à 23:37:37    

heuh
ben la fais pas static ?

Reply

Marsh Posté le 17-02-2004 à 23:38:51    

Tu ne peux pas. Les méthodes statiques ne concernent pas une instance particuliere, mais la classe.

Reply

Marsh Posté le 17-02-2004 à 23:40:35    

J'ajoute que si ton probleme vient du fait que tu dois appeler un EnumQuelqueChose, mentionne le directement car c'est généralement la que le static bloque les gens.
 
Au fait, en C++ on parle de fonction membre et pas de "méthode"

Reply

Marsh Posté le 17-02-2004 à 23:50:04    

je veut récuperer l'adresse pour pouvoir apres récuperer le nom de l'objet et le stoké. mais bon enfaite je peut le faire car la fonction menre est static si g bien compris .

Reply

Marsh Posté le 17-02-2004 à 23:50:34    

peut pas le faire

Reply

Marsh Posté le 17-02-2004 à 23:52:41    

Ca m'a l'air foutoirland ton histoire.

Reply

Marsh Posté le 18-02-2004 à 00:20:24    

juste pour voir, tu t'en sers comment des fonctions statiques ?

Reply

Marsh Posté le 18-02-2004 à 09:38:13    

merci pour les reponse

Reply

Marsh Posté le 18-02-2004 à 19:14:14    

taz a écrit :

juste pour voir, tu t'en sers comment des fonctions statiques ?


Je te vois venir toi  :lol:

Reply

Marsh Posté le 18-02-2004 à 19:14:14   

Reply

Marsh Posté le 19-02-2004 à 12:56:11    

Citation :

je veut récuperer l'adresse pour pouvoir apres récuperer le nom de l'objet et le stoké. mais bon enfaite je peut le faire car la fonction menre est static si g bien compris .


 
Explique un peu mieux ton probleme et on pourra t'aider.
 
Cordialement,
   XteR.

Reply

Marsh Posté le 19-02-2004 à 12:59:38    

taz a écrit :

juste pour voir, tu t'en sers comment des fonctions statiques ?


ne cherche pas la merde toi :D


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 19-02-2004 à 13:56:31    

En gros ta question c'est "Comment récupérer l'adresse d'un objet à partir d'une fonction qui n'en fait pas partie". Cherche l'erreur...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 19-02-2004 à 20:16:26    

Ace17 a écrit :

J'ajoute que si ton probleme vient du fait que tu dois appeler un EnumQuelqueChose, mentionne le directement car c'est généralement la que le static bloque les gens.
 
Au fait, en C++ on parle de fonction membre et pas de "méthode"


slt je sais que ca n'a pas de rapport avec le sujet mais c quoi la difference entre fonction membre et méthode.
car pour moi bas c pareil


---------------
In a world without walls and fences, who needs Windows and Gates
Reply

Marsh Posté le 26-02-2004 à 21:28:48    

Si l'adresse que tu veux atteindre est static, tu peux toujours utiliser les templates :

Code :
  1. template < ton_type& objet >
  2. void TaObjet::TaFonction<objet>
  3. {
  4.   const char* nom = objet.nom;
  5. }


En esperant que ca t'aide.


Message édité par cnstrnd le 26-02-2004 à 21:30:08
Reply

Marsh Posté le 27-02-2004 à 00:51:01    

en espérant que ça compile je dirait :o

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed