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

  FORUM HardWare.fr
  Programmation
  C++

  Appel d'une fonction

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Appel d'une fonction

n°1729367
ludo11
Posté le 07-05-2008 à 10:41:22  profilanswer
 

Bonjour, j’ai besoin de votre aide pour résoudre un problème.
Je doit amélioré un programme qui ma été transmit, cette amélioration consiste a appelé une fonction d’une autre classe et qui est situé dans un autre dossier que le dossier ou se trouve la classe a modifier.
 
Le code que je dois appeler est celui-ci :
void CMinutiaeDlg::OnOK()  
{
 // TODO: Add extra validation here
 DetectMinutiae();
 OnCancel();
 
 //AfxMessageBox(" Detection Over" );
}
Comment fait-on pour appelé une fonction d’une autre classe ? Sachant que je n’y connait presque rien en prog et encore moins en C++. Doit-on faire des include ?  
 
Merci de votre aide

mood
Publicité
Posté le 07-05-2008 à 10:41:22  profilanswer
 

n°1729369
Elmoricq
Modérateur
Posté le 07-05-2008 à 10:44:15  profilanswer
 

Ben il te faut une instance de ta classe.

n°1729370
ludo11
Posté le 07-05-2008 à 10:47:33  profilanswer
 

C'est a dire? comment tu fait sa?

n°1729374
Elmoricq
Modérateur
Posté le 07-05-2008 à 11:01:08  profilanswer
 

C'est un cours complet de POO et de C++ qu'il te faut, là.
 
Tu peux commencer par là : http://www.cplusplus.com/doc/tutorial/
 
Bonne lecture.

n°1729541
ludo11
Posté le 07-05-2008 à 14:42:38  profilanswer
 

ok merci, mais quelqu'una aurais un exemple a me passé svp.
 
je doi faire la modif pour se soir
 
thxx

n°1729544
Alload
Posté le 07-05-2008 à 14:43:56  profilanswer
 

Exemple :
 

Code :
  1. GenerateurDeNombre generateur();
  2. int entier = generateur.creeEntier();

Message cité 1 fois
Message édité par Alload le 07-05-2008 à 14:44:36
n°1729548
Alload
Posté le 07-05-2008 à 14:45:32  profilanswer
 

Version avec pointeur :
 

Code :
  1. GenerateurDeNombre* pGenerateur = new GenerateurDeNombre();
  2. int entier = pGenerateur->creeEntier();

n°1729562
Joel F
Real men use unique_ptr
Posté le 07-05-2008 à 15:08:18  profilanswer
 

Alload a écrit :

Exemple :
 

Code :
  1. GenerateurDeNombre generateur();
  2. int entier = generateur.creeEntier();



 
 [:absolutelykaveh] mais lol. on est aps en JAVA.
 

Code :
  1. GenerateurDeNombre generateur;
  2. int entier = generateur.creeEntier();


 
 
pas de () après un constructeur par défaut merci :o

n°1729564
Alload
Posté le 07-05-2008 à 15:10:03  profilanswer
 

Merde, deja que j'ai du editer mon post pour virer quelques bourdes Java style ! Il m'en restait encore une :whistle: Vivement l'annee prochaine que je me replonge a fond dans le C++, le Java commence a me pervertir :o

n°1729571
Taz
bisounours-codeur
Posté le 07-05-2008 à 15:23:44  profilanswer
 

Joel F a écrit :


 
 [:absolutelykaveh] mais lol. on est aps en JAVA.
 

Code :
  1. GenerateurDeNombre generateur;
  2. int entier = generateur.creeEntier();


 
 
pas de () après un constructeur par défaut merci :o


Le problème de cette syntaxe, c'est qu'elle déclare une fonction. Par contre, quand on fait du template, pour initialiser quelque chose, c'est trop commun de faire un

Code :
  1. T t = T();

qui fonctionne avec les objets et les types primitifs (mis à zéro)

mood
Publicité
Posté le 07-05-2008 à 15:23:44  profilanswer
 

n°1729652
Joel F
Real men use unique_ptr
Posté le 07-05-2008 à 16:47:32  profilanswer
 

le C++0x ne règle t il pas cette incongruité d'ailleurs ?
 
perso je rajoute un niveau avec un build<T>() qui selon T (ref ou pas, const ou pas , primitif ou pas, default-constructible ou pas) crée le truc proprement et/ou chouine à la compile. Mais bon, je dois etre trop contaminer par BOOST ^^

n°1730564
jesus_chri​st
votre nouveau dieu
Posté le 10-05-2008 à 22:57:54  profilanswer
 

Joel F a écrit :

le C++0x ne règle t il pas cette incongruité d'ailleurs ?


 
Il va unifier ça je crois :
 

Code :
  1. struct PlainOldData
  2. {
  3.    int n;
  4.    float f;
  5. };
  6. struct WithDefaultConstructor
  7. {
  8.    WithDefaultConstructor() : n(0), f(0) {}
  9.    int n;
  10.    float f;
  11. };
  12. class A : public PlainOldData
  13. {
  14.    A() :
  15.       PlainOldData() // pas d'init à zero sauf si appelé explicitement, comme ici
  16.    {}
  17. }
  18. class B : public WithDefaultConstructor
  19. {
  20.    B() :
  21.       WithDefaultConstructor() // appel redondant, inutile
  22.    {}
  23. }


 
La construction de type A sera alignée sur celle de type B il me semble, mais sera surement limitée aux plain-old-data, pas aux types intégrés.

n°1731133
Taz
bisounours-codeur
Posté le 13-05-2008 à 12:04:45  profilanswer
 

J'espère surtout qu'on aura la syntaxe à la Java pour les valeurs par défaut

Code :
  1. struct POD {
  2.   int i = 0;
  3. };

n°1731443
cricri_
Posté le 14-05-2008 à 07:45:56  profilanswer
 

+1, ça serait cool ..


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

  Appel d'une fonction

 

Sujets relatifs
Fonction avec parametre en char * et appel avec stringAppel dynamique de fonction
[PHP][resolu] appel de fonction avec nom généré dynamiquement[JS] Appel fonction d'une autre page
perte d'adresses à l'appel d'une fonctionappel d'une fonction (execution) qui est definie par un char[]
[Résolu] Appeler une fonction avec comme paramètre la fonction d'appelappel fonction c
[VB2005] Un appel à la fonction PInvoke (..) a déséquilibré la pile !!appel à une fonction avec un nombre de paramètres variable
Plus de sujets relatifs à : Appel d'une fonction


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)