cs_christophedlr
Messages postés267Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention23 août 2023
-
7 mai 2008 à 19:17
cs_Arnotic
Messages postés933Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 9 janvier 2012
-
8 mai 2008 à 17:25
Bonsoir,
Dans mon programme en C++, je souhaite pouvoir utiliser une fonction d'initialisation dans ma structure.
J'ai vu un programme d'exemple ici me disant qu'il fallait dans la fonction que je lui passe ma structure en pointeur sur this, hors cela me renvoi une erreur.
Voici le code de la structure:
struct version
{
int majeur;
int mineur;
char *texte;
void init( struct version *this);
};
Et les erreurs:
config.h:11: erreur: expected «," or «..." before «this"
config.h:14: erreur: expected «," or «..." before «this"
yassinebennani
Messages postés249Date d'inscriptionsamedi 13 octobre 2007StatutMembreDernière intervention 2 mai 2014 7 mai 2008 à 19:46
Je n'ai jamais vu ni entendu qu'on peut insèrer des méthodes à l'intérieur d'une structure dans ce cas elle n'est plus une structure c'est une classe donc pourquoi ne pas passer par une classe
Les fins justifient les moyens_________________________________________________
Yassine BENNANI - Ingénieur en génie logiciel & multimédia (Consultant SI)
cs_christophedlr
Messages postés267Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention23 août 20235 7 mai 2008 à 23:46
C'est bon j'ai résolu mon problème, en fait me suffisait d'inclure ma fonction directement dans la structure et non comme je le pensais, y mettre juste le prototype.
[auteur/JACKSPAROOW/1172897.aspx jacksparoow,]
Le fait que je n'utilise pas directement une classe, est que je n'en ai pas besoin.
La fonction que j'ai dans ma structure me permet uniquement de fournir une valeur de base à celle-ci, et il n'y a donc qu'une seule et unique fonction.
Cette structure en fait contient le numéro de version du programme, et la fonction ne fait que affecter aux variables de la structure, le numéro de version c'es tous.
Faire une classe m'obligerais donc à déclarer un constructeur, hors là ce n'est pas utile.
Vous n’avez pas trouvé la réponse que vous recherchez ?
yassinebennani
Messages postés249Date d'inscriptionsamedi 13 octobre 2007StatutMembreDernière intervention 2 mai 2014 8 mai 2008 à 13:41
ça revien au même christoph ce que ta fait ou bien ta voulu faire c'est tout simplement une classe avec un constructeur sinon elle sera quoi la particularité d'une classe.
Les fins justifient les moyens_________________________________________________
Yassine BENNANI - Ingénieur en génie logiciel & multimédia (Consultant SI)
cs_christophedlr
Messages postés267Date d'inscriptionsamedi 3 janvier 2004StatutMembreDernière intervention23 août 20235 8 mai 2008 à 14:45
Au niveau théorique ça ne change peut être rien de passer par une classe qu'une structure, mais au niveau de ma façon de coder, cela change beeaucoup chose ;)
cs_jfrancois
Messages postés482Date d'inscriptionvendredi 26 août 2005StatutMembreDernière intervention 5 décembre 20092 8 mai 2008 à 15:15
Bonjour,
La seule différence entre les structures et les classes est :
- Les membres sont publiques par défaut dans une structure (sinon il faut utiliser private:)
- Les membres sont privés par défaut dans une classe (sinon il faut utiliser public:).
cs_Arnotic
Messages postés933Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 9 janvier 2012 8 mai 2008 à 17:25
Tu es loin de la différence.
Compile donc un code avec une classe, et un autre avec une structure. Compare l'asm généré et tu veras que ta classe ne sert qu'a ralentir ton programme.