faticentre2006
Messages postés1Date d'inscriptionvendredi 22 décembre 2006StatutMembreDernière intervention23 décembre 2006 23 déc. 2006 à 15:13
si on programme ce code avec une classe qui contient un fichier.h et fichier.cpp et un main.cpp,où est ce qu'on va mettre la boucle parce que qu'on je compile il donne comme erreur 'boucle:undeclared identifier' alors que j'ai defini cette boucle dans le fichier.cpp
Zazour
Messages postés120Date d'inscriptionmercredi 7 mai 2003StatutMembreDernière intervention14 janvier 2006 11 août 2003 à 07:32
Pour arriver a compiler cet exemple je suis obligé de mettre "int main()" au lieur de "void main()".
quelqu'un peut il m'expliquer?
si besoin je suis sous DEV C++ 5.
trinitacs
Messages postés249Date d'inscriptionmardi 16 juillet 2002StatutMembreDernière intervention 7 août 20032 30 déc. 2002 à 19:34
chavez >> C'est un avis subjectif tout comme je dis qu'il faut un tableau de fonction. Ce qu'il faut c'est enlever les if et les remplacer par une autre solution élégante tel que le switch ou bien sur un super tableau de pointeurs de fonctions :)
cs_chavez
Messages postés7Date d'inscriptiondimanche 1 décembre 2002StatutMembreDernière intervention25 juin 2003 25 déc. 2002 à 19:07
Je pense aussi qu'un switch serait le bienvenu.
trinitacs
Messages postés249Date d'inscriptionmardi 16 juillet 2002StatutMembreDernière intervention 7 août 20032 24 déc. 2002 à 13:07
Kaid << "Mais là je trouve vraiment que c'est trop de code pour pas grand chose"
C'est sûr que c'est l'artiellerie lourde mais ce n'est pas trop de code non plus (du point de vu longueur).
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 24 déc. 2002 à 11:16
En fait je ne suis pas contre les tableaux de pointeurs de fonctions, je les utilise mais de manière dynamique pour associer un message de fenêtre Windows à une méthode.
Mais là je trouve vraiment que c'est trop de code pour pas grand chose, surtout qu'il faut faire la correspondance entre les entrées du menu ('a', 'd', 'm', 's') et les index dans le tableau.
gblade
Messages postés85Date d'inscriptionsamedi 16 novembre 2002StatutMembreDernière intervention19 mai 2003 24 déc. 2002 à 10:22
Hum... Dites moi si j'me trompe mais ne serait-il pas plus simple de déclarer toutes les fonctions membres virtuelles et de se servir directement de la VMT comme tableau de pointeurs de fonctions ? Parce-que dans ce acs là on s'économiserait la peine de déclarer le tableau.
trinitacs
Messages postés249Date d'inscriptionmardi 16 juillet 2002StatutMembreDernière intervention 7 août 20032 24 déc. 2002 à 09:15
Je trouve que oui. Une fois que t'as posé ton tableau de pointeurs de fonctions c'est aussi facil de rajouter des possibilités que dans un switch. Ça demande même moins de lignes de codes !
Il ne faut pas dire que les pointeurs de fonction sont compliqués. Il est vrai que la déclaration peut être parfois hardue quand ça retourne à nouveau un pointeur de fonction :) c'est vrai que c'est plus compliqué qu'un switch mais pas de beaucoup.
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 23 déc. 2002 à 23:04
Faire ca pour une addition, tu trouves ca simple ?
trinitacs
Messages postés249Date d'inscriptionmardi 16 juillet 2002StatutMembreDernière intervention 7 août 20032 23 déc. 2002 à 20:20
Ça dépend. J'aime bien faire des tableaus de fonctions. Dans un cas comme celui-ci la rapidité n'est pas essentiel donc le 2 sont des bons choix.
Tu devrais faire des fonctions set et get dans ta classe, ainsi tu pourras mettre en private ou en protected les données.
//fonction get
int maclasse::get_donnee() const
{
return _donnee;
}
//fonction set
void maclasse::set_donnee( int d )
{
_donne = d;
}
PS: dans mes classe je commence toujours les noms de variable par _ afin que ce soit plus clair.
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 23 déc. 2002 à 17:52
Un switch() suffit amplement, c'est bien plus simple et compréhensible qu'un tableau de pointeurs de méthodes d'instances.
trinitacs
Messages postés249Date d'inscriptionmardi 16 juillet 2002StatutMembreDernière intervention 7 août 20032 23 déc. 2002 à 14:43
Ou encore mieux: faire un tableau de fonctions ce qui te permettera de faire la meme chose qu'un switch ou que tes if en moins de 5 lignes ! Et en plus ce sera beaucoup plus rapide.
Sinon c'est une source propre.
ElVirolo
Messages postés15Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention11 mars 2003 23 déc. 2002 à 14:10
Pas mal, sauf que tu purrais remplacer tes if's par un switch !
23 déc. 2006 à 15:13
11 août 2003 à 07:32
quelqu'un peut il m'expliquer?
si besoin je suis sous DEV C++ 5.
30 déc. 2002 à 19:34
25 déc. 2002 à 19:07
24 déc. 2002 à 13:07
C'est sûr que c'est l'artiellerie lourde mais ce n'est pas trop de code non plus (du point de vu longueur).
24 déc. 2002 à 11:16
Mais là je trouve vraiment que c'est trop de code pour pas grand chose, surtout qu'il faut faire la correspondance entre les entrées du menu ('a', 'd', 'm', 's') et les index dans le tableau.
24 déc. 2002 à 10:22
24 déc. 2002 à 09:15
Il ne faut pas dire que les pointeurs de fonction sont compliqués. Il est vrai que la déclaration peut être parfois hardue quand ça retourne à nouveau un pointeur de fonction :) c'est vrai que c'est plus compliqué qu'un switch mais pas de beaucoup.
23 déc. 2002 à 23:04
ptrFonc tabPtr[4]={calcul.addition, calcul.multiplication, calcul.division, calcul.soustraction};
(calcul.*tabPtr[0])();
Faire ca pour une addition, tu trouves ca simple ?
23 déc. 2002 à 20:20
Tu devrais faire des fonctions set et get dans ta classe, ainsi tu pourras mettre en private ou en protected les données.
//fonction get
int maclasse::get_donnee() const
{
return _donnee;
}
//fonction set
void maclasse::set_donnee( int d )
{
_donne = d;
}
PS: dans mes classe je commence toujours les noms de variable par _ afin que ce soit plus clair.
23 déc. 2002 à 17:52
23 déc. 2002 à 14:43
Sinon c'est une source propre.
23 déc. 2002 à 14:10