Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
763 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  adresse d'une methode

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

adresse d'une methode

n°675281
carot0
Posté le 16-03-2004 à 19:04:30  profilanswer
 

slt tlm voila j'aimerais savoir comment obtenir l'adresse d'une methode pour la passer en parametre a une autre methode de la meme classe
merci de votre aide


---------------
In a world without walls and fences, who needs Windows and Gates
mood
Publicité
Posté le 16-03-2004 à 19:04:30  profilanswer
 

n°675325
jagstang
Pa Capona ಠ_ಠ
Posté le 16-03-2004 à 19:51:25  profilanswer
 

drapal

n°675362
xterminhat​e
Si vis pacem, para bellum.
Posté le 16-03-2004 à 20:34:43  profilanswer
 

Il faut passer l'adresse de l'objet (*C)et ensuite appeler la methode par l'intermédiaire du pointeur de l'objet (C->methode()).
 
Cordialement,
   XteR.

n°675363
Taz
bisounours-codeur
Posté le 16-03-2004 à 20:37:03  profilanswer
 

quoi drapal ? on l'a déjà faite 100x
 
JagStang > ça métonne ça  
 
 

Code :
  1. #include <iostream>
  2.                                                                                                                                                            
  3.                                                                                                                                                            
  4. struct Foo
  5. {
  6.   void foo()
  7.   {
  8.     std::cout << "void Foo::foo()\n";
  9.   }
  10.                                                                                                                                                            
  11.   void foo(int)
  12.   {
  13.     std::cout << "void Foo::foo(int)\n";
  14.   }
  15.                                                                                                                                                            
  16.   void foo() const
  17.   {
  18.     std::cout << "void Foo::foo() const\n";
  19.   }
  20.                                                                                                                                                            
  21.   static void bar()
  22.   {
  23.     std::cout << "static void Foo::bar()\n";
  24.   };
  25. };
  26.                                                                                                                                                            
  27.                                                                                                                                                            
  28. int main()
  29. {
  30.   Foo obj;
  31.   Foo *ptr(&obj);
  32.                                                                                                                                                            
  33.   typedef void (Foo::*Foofoov)();
  34.   typedef void (Foo::*Foofooi)(int);
  35.   typedef void (Foo::*Foofoovc)() const;
  36.                                                                                                                                                            
  37.                                                                                                                                                            
  38.   Foofoov a(&Foo::foo);
  39.   Foofooi b(&Foo::foo);
  40.   Foofoovc c(&Foo::foo);
  41.                                                                                                                                                            
  42.                                                                                                                                                            
  43.   (obj.*a)();
  44.   (obj.*b)(42);
  45.   (obj.*c)();
  46.                                                                                                                                                            
  47.   (ptr->*a)();
  48.   (ptr->*b)(42);
  49.   (ptr->*c)();
  50. }

n°675557
carot0
Posté le 16-03-2004 à 23:08:00  profilanswer
 

heu ...  
c une structure ca. moi je parle pour une classe.
 
edit : en plus pas un seul commentaires je comprend rien


Message édité par carot0 le 16-03-2004 à 23:08:28

---------------
In a world without walls and fences, who needs Windows and Gates
n°675586
Taz
bisounours-codeur
Posté le 16-03-2004 à 23:12:39  profilanswer
 

carot0 a écrit :

heu ...  
c une structure ca. moi je parle pour une classe.
 
edit : en plus pas un seul commentaires je comprend rien

et c'est quoi la différence entre struct et class pour toi ?
 
pas grand chose à dire sinon
la syntaxe
un typedef pour planquer tout ça, parce que c'est lour à écrire
et syntaxe d'appel

n°675674
jagstang
Pa Capona ಠ_ಠ
Posté le 16-03-2004 à 23:52:24  profilanswer
 

Taz a écrit :

quoi drapal ? on l'a déjà faite 100x
 
JagStang > ça métonne ça  


 
oui mais bon. j'avais un doute et j'arrivais plus à mettre la main sur un exemple...  :jap:  
 
 :p

n°675941
frenchkiss
Posté le 17-03-2004 à 10:47:25  profilanswer
 

juste pour la completer la diff entre class et struct
la plus grosse etant sans doute
une struct par default c'est public  
et une classe c'est prive.
donc t as economiser une ligne dans ta declaration ,
 pas besoin de public:
 
 
 
 
 
 
 
 
 

n°676080
carot0
Posté le 17-03-2004 à 13:00:55  profilanswer
 

Taz a écrit :

et c'est quoi la différence entre struct et class pour toi ?
 
pas grand chose à dire sinon
la syntaxe
un typedef pour planquer tout ça, parce que c'est lour à écrire
et syntaxe d'appel


ok merci


---------------
In a world without walls and fences, who needs Windows and Gates
n°676377
Taz
bisounours-codeur
Posté le 17-03-2004 à 17:02:19  profilanswer
 

frenchkiss a écrit :

juste pour la completer la diff entre class et struct
la plus grosse etant sans doute
 

y en a d'autres ?

mood
Publicité
Posté le 17-03-2004 à 17:02:19  profilanswer
 

n°676850
julienr
Posté le 18-03-2004 à 10:14:07  profilanswer
 

Oui, on peut faire de l'héritage avec des classes :-P
Sinon, je te conseille cette superbe référence sur le C++:
http://cowww.epfl.ch/infgmel/doc/coursCpp/book1.html
notamment cette section :
http://cowww.epfl.ch/infgmel/doc/coursCpp/x3828.html

n°676872
Joel F
Real men use unique_ptr
Posté le 18-03-2004 à 10:28:00  profilanswer
 

julienr a écrit :

Oui, on peut faire de l'héritage avec des classes :-P
Sinon, je te conseille cette superbe référence sur le C++:
http://cowww.epfl.ch/infgmel/doc/coursCpp/book1.html
notamment cette section :
http://cowww.epfl.ch/infgmel/doc/coursCpp/x3828.html


 
 :lol: y a des fortunes qui se perdent  :whistle:
 
et accessoiremnt :
 

Code :
  1. struct toto {};
  2. struct tata : public toto {};


 
passe sans problêm [:dawa]


Message édité par Joel F le 18-03-2004 à 10:29:22
n°676922
julienr
Posté le 18-03-2004 à 11:20:37  profilanswer
 

Joel F a écrit :


 
 :lol: y a des fortunes qui se perdent  :whistle:
 
et accessoiremnt :
 

Code :
  1. struct toto {};
  2. struct tata : public toto {};


 
passe sans problêm [:dawa]


 
Je sais pas avec quel type de C tu bosses, mais chez moi, gcc3.3 :

Code :
  1. [FULL][11:19:13] silver:$> cat struct_test.c
  2. struct t_a
  3. {
  4.         int a;
  5. };
  6. struct t_b : public t_a
  7. {
  8.         int b;
  9. };
  10. void main(void)
  11. {
  12.         struct t_a test1;
  13.         struct t_b test2;
  14.         test1.a = 2;
  15.         test2.b = 3;
  16. }


Code :
  1. [FULL][11:17:56] silver:$> gcc -o struct struct_test.c
  2. struct_test.c:7: error: erreur d'analyse syntaxique before ':' token
  3. struct_test.c: Dans la fonction « main »:
  4. struct_test.c:15: error: storage size of `test2' isn't known
  5. struct_test.c:13: attention : le type de retour de « main » n'est pas « int »


 
En plus, je n'ai _jamais_ vu de tels trucs dans un cours de c (meme dans le bouquin des 2 créateurs :-P)
 
Par contre, si j'utilise g++ (donc c++), alors le code passe sans erreur (a par que main doit retourner un int...)
 
Donc NON, il n'y a pas d'héritage en c, auquel cas le c++ ne servirait à rien :-P


Message édité par julienr le 18-03-2004 à 11:21:47
n°676924
frenchkiss
Posté le 18-03-2004 à 11:23:50  profilanswer
 

>Par contre, si j'utilise g++ (donc c++), alors le code passe >sans erreur (a par que main doit retourner un int...)  
>Donc NON, il n'y a pas d'héritage en c, auquel cas le c++ ne >servirait à rien :-P  
 
lol merci pour cette super info

n°676925
Joel F
Real men use unique_ptr
Posté le 18-03-2004 à 11:23:59  profilanswer
 

o_O excuse moi mais bon la ...
on parle des struct en C++ justement >.<

n°676934
julienr
Posté le 18-03-2004 à 11:42:10  profilanswer
 

Arf, j'ai aussi une fixation sur struct -> C, class -> C++, donc désolé..
 
frenchkiss, en fait, gcc se base sur l'extension de tes fichiers (.c -> c, .cc .cpp -> c++) pour voir s'il doit compiler en tant que c ou c++. Si tu appelles g++, tu le force à compiler ça comme du c++.

n°676982
Taz
bisounours-codeur
Posté le 18-03-2004 à 12:11:49  profilanswer
 

y a vraiment des baffes qui se perdent quand même
merci pour les liens d'ailleurs tu ferais bien de le lire avant de le conseiller http://cowww.epfl.ch/infgmel/doc/coursCpp/x2726.html
j'aime bien quand l'hopital se fout de la charité, c'est pas comme si en définitif t'étais le seul à avoir appris quelque chose :D

n°677089
skelter
Posté le 18-03-2004 à 14:03:11  profilanswer
 

tout est la :

Citation :


A language feature in C++ that is very similar to a class is the struct. This is essentially a hangover from the C language. (Windows was written in C before C++ became widely used, hence the struct appears pervasively in Windows programming.) The struct in C++, however, extends greatly the capability of the C struct - in fact, in C++ the keywords struct and class are are almost identical, and the reason struct is maintained C++ is for reasons of backward compatibility with C. The only difference between these two keywords is that the default access attribute of a struct is public, whereas, as we have already seen, the default access attribute for a class is private. A common use of structs in C++ is for classes that contain only public data members.
 


Message édité par skelter le 18-03-2004 à 14:04:05

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  adresse d'une methode

 

Sujets relatifs
[SNMP] Retouver le switch correspondant à une adresse MAC, assez urgenMéthode de maj d'une database
comment voir l'adresse ip d'une personne avec ki l'on parle sur msnQuand on redirige un site, on peut masquer l'adresse originale ?
Redirection - adresse ds la barre d'adresse[HTML/PHP] Récupérer l'adresse MAC du gars qui a fait la requête...
[DOM] methode removeChild() qui laisse un trou[Canvas] pb : ma méthode repaint() n'appelle pas mon paint() !
comment récuperer l'adresse d'un objet à partir d'un methode (static)[Delphi, Pascal] une méthode de classe n'a pas d'adresse ????!
Plus de sujets relatifs à : adresse d'une methode


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR