Appel d'une fonction

Appel d'une fonction - C++ - Programmation

Marsh Posté le 07-05-2008 à 10:41:22    

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

Reply

Marsh Posté le 07-05-2008 à 10:41:22   

Reply

Marsh Posté le 07-05-2008 à 10:44:15    

Ben il te faut une instance de ta classe.

Reply

Marsh Posté le 07-05-2008 à 10:47:33    

C'est a dire? comment tu fait sa?

Reply

Marsh Posté le 07-05-2008 à 11:01:08    

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.

Reply

Marsh Posté le 07-05-2008 à 14:42:38    

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

Reply

Marsh Posté le 07-05-2008 à 14:43:56    

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
Reply

Marsh Posté le 07-05-2008 à 14:45:32    

Version avec pointeur :
 

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

Reply

Marsh Posté le 07-05-2008 à 15:08:18    

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

Reply

Marsh Posté le 07-05-2008 à 15:10:03    

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

Reply

Marsh Posté le 07-05-2008 à 15:23:44    

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)

Reply

Marsh Posté le 07-05-2008 à 15:23:44   

Reply

Marsh Posté le 07-05-2008 à 16:47:32    

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 ^^

Reply

Marsh Posté le 10-05-2008 à 22:57:54    

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.

Reply

Marsh Posté le 13-05-2008 à 12:04:45    

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. };

Reply

Marsh Posté le 14-05-2008 à 07:45:56    

+1, ça serait cool ..

Reply

Sujets relatifs:

Leave a Replay

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