-
Trop de Variables!
Bonjour,
En bon débutant voulant arriver à ses fins mais helas encore mauvais programmeur, mon programme comprend du C et du C++. (tout ce qui me permettait d'avancer)
Au debut le 'main' charge plein de variables.
quand je dois utiliser une fonction ecrite ailleurs (autre fichier dans code::blocks) je dois transférer pas mal de variables ce qui me donne un truc austère comme :
nomDeLaFonction(int a, int b, int c, etc... , POINT cible, ZONE bidule, etc...)
De plus dans main pour appeler ces dites fonctions je me recoltine toutes les variables à taper.
Comme mon programme ne sert qu'à une chose, ne devrais-je pas les déclarer "variables globales"? (mais on dit souvent que c'est a eviter), ou avez vous une autre idée?
Merci.
-
C'est clair que tu as un problème d'architecture de ton programme ! ;)
Une fonction à 11 paramètres ça sent pas très très bon! :mrgreen:
La solution à ton problème n'est pas évidente. Il faudrait tout revoir et mieux organiser ton code. Le langage C++ étant objet, il convient de l'utiliser dans cette voie. Ainsi avec le temps tu arriveras à créer des abstractions de données bien formalisées avec des fonctions membres qui ont une responsabilité et une seule dans le cas idéal.
Si tu regardes de plus près tes fonctions à toi, je mettrai ma main à couper qu'elles sont relativement longues, font pas mal de choses (donc plusieurs responsabilités), et il est possible qu'il y ait de la redondance de code (à éviter bien sûr).
Tout ça pour dire que tant qu'on a pas compris un problème, on ne peut pas correctement le modéliser. Je ne peux donc pas t'aider directement! ;) Par contre je t'encouragerai à aller vers cette voie de l'orienté objet, en créant des classes et en t'éloignant ainsi du C. Prend du temps pour découper ton problème, et organise mieux ton code. N'hésite pas à demander ici plus de précisions sur des problèmes que tu rencontreras ! ;)
Bonne continuation,
Poukill
-
Salut, et bienvenue sur le forum.
Tu devrais déjà essayer de voir s'il n'y a pas possibilité de "regrouper" les variables "qui vont bien" au sein d'une structure...
Cela n'a pas grand chose à voir avec l'exemple que tu cites, mais, il faut avouer que les variable "rue", "numero","codepostal" et "ville" vont tellement bien ensemble que l'on pourrait envisager de les regrouper au sein d'une structure "adresse".
Par la suite, cette structure "adresse" irait tellement bien avec les variables "nom", "prenom" et "telephone" qu'il serait sans doute opportun de les regrouper dans une structure "personne" ;)
De cette manière, plutôt que de passer les 7 variables séparées pour te permettre de représenter une personne, tu peux te "contenter" de n'en passer qu'une seul (de type... "personne") qui contient toutes les informations dont tu as besoin.
Tu en dis trop peu pour nous permettre d'être plus précis dans les exemples, ce qui nous force au minimum à manquer de précision, au pire à donner des exemple sans aucun rapport.
Aussi, si nous n'avons rien contre le fait de t'aider à trouver "les meilleures structures" à envisager, il nous faut quelque chose d'un peu plus concret pour pouvoir le faire ;)
L'étape suivante consistant à envisager les choses d'un point de vue "orienté objet" en vue de déléguer correctement les responsabilités en envisageant les comportement que doivent proposer chaque structures.
A toi de jouer ;)
-
Merci a vous.
j'ai bien simplifié comme expliqué j'ai subdivisé plus simplement mon code et fait une structure (seule vraiment possible )
il me reste un gros envois de varaible lors de la sauvegarde dans une fonction save et idem pour le load... mais tout marche nikel Merci encore!