RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Serv: irc.irc-land.org
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 vc++ 2005, structures et tableaux

Forum : C++ - CONSOLE
Sous Catégorie : Console
Type du sujet : Sujet Normale
FAQ : FAQ C++ - CONSOLE

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGES : [1] [2]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM C++ - CONSOLE

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
Pyrrha
Nouveau membre
Inscrit : 19/03/2006
Messages : 8
Message
#91413
Posté le 19/03/06 à 15:19
Oui mais non.
Effectivement c'est vraiment faux, mais c'est parce que, au départ, je ne voulais pas TOUT mettre dans le main. Je dois laisser des variables globales, car je ne veux pas passer certains éléments en paramètres (ou valeur).
=> Déclaratiions de la variable en dehors du main
=> Modification dans le main (a[x].truc={bla,bla,bla};)
=> Appel des fonctions etc...

ce que j'écris est moins pire ? Smiley

main :


#include <iostream> #include <string> #include "obj_string.h" using namespace std; objet biblio [4]; int proba_tot=0; int main() { /*ligne 12*/ biblio[0]={"mangue","une","cette",3,1,40}; biblio[1]={"ananas","un","cet",1,1,30}; biblio[2]={"lance-roquettes","un","ce",20,2,17}; biblio[3]={"fusil à clous","un","ce",17,2,13}; .....


erreurs :


.\obj_main.cpp(12) : error C2059: syntax error : '{' .\obj_main.cpp(12) : error C2143: syntax error : missing ';' before '{' .\obj_main.cpp(12) : error C2143: syntax error : missing ';' before '}' .\obj_main.cpp(13) : error C2059: syntax error : '{' .\obj_main.cpp(13) : error C2143: syntax error : missing ';' before '{' .\obj_main.cpp(13) : error C2143: syntax error : missing ';' before '}' .\obj_main.cpp(14) : error C2059: syntax error : '{' .\obj_main.cpp(14) : error C2143: syntax error : missing ';' before '{' .\obj_main.cpp(14) : error C2143: syntax error : missing ';' before '}' .\obj_main.cpp(15) : error C2059: syntax error : '{' .\obj_main.cpp(15) : error C2143: syntax error : missing ';' before '{' .\obj_main.cpp(15) : error C2143: syntax error : missing ';' before '}'

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

sebsheep
Membre du club
Chef de projet(s) :
- SejourAdmin

Inscrit : 27/03/2005
Messages : 509
Message
#91414
Posté le 19/03/06 à 15:35
[quote]je ne voulais pas TOUT mettre dans le main.[/quote]

ca c'est tres bien!

[quote]car je ne veux pas passer certains éléments en paramètres [/quote]

oui mais t'y es quand même un peu obligé. Là tu fais un petit projet, tu pourrais tout déclarer dynamiquement sans jamais rendre la mémoire, ca devrait pouvoir marcher si t'as plus de 32 Ko de RAM lol.

Mais imagine que tu veuilles reprendre ton code pour l'inserer dans un autre programme avec d'autres codes qui contiennent aussi des variables globales. ca peut devenir vite galere vu que pourras acceder partout à tes variables globales même pour des actions qui n'ont aucun rapport avec le programme en cours .

En plus, tu peux avoir pris plusieurs fois le même nom pour tes variables globales... et là c'est vraiment la lutte parcequ'il faut que tu changes toutes les aparitions d'une des variables....


Tandis qu'en passant des parametres, c'est un (tout petit) peu plus long à coder mais si tu veux le réutiliser apres, pas de problemes!

Et aussi, si tu fais par exemple une fonction qui te classe un tableau (par exemple hein!), si tu déclares ton tableau en global, ta fonction ne marchera que dans ton programme. Tandis que si tu passes ton tableau en parametre, tu n'auras qu'a faire un copié/collé de ta fonction si tu veux le réutiliser dans un autre programme!
__________________________
L'élève heureux est celui qui, comme la rivère, suit son cours dans son lit.
Et n'oubliez pas :[b]Seb, c'est bien![/b]

ERREUR BBCODE SUR CE MESSAGE :
- La valeur de la balise "quote" n'est pas correcte !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Pyrrha
Nouveau membre
Inscrit : 19/03/2006
Messages : 8
Message
#91416
Posté le 19/03/06 à 15:50
bon alors ok... admettons que je ne mette pas de variable globale.
Il n'y a aucun moyens que les fonctions que j'apelle prennent par défaut un tableau créé avant (ou un truc comme ça), ss pour autant mettre un argument à chaque fois? Si c'est pas possible, alors ok, je les mettrai quand même, tu m'as convaincu.
Mais que je mette tt ds le main ou pas, j'ai toujours ces foutues erreurs...... Smiley

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

sebsheep
Membre du club
Chef de projet(s) :
- SejourAdmin

Inscrit : 27/03/2005
Messages : 509
Message
#91421
Posté le 19/03/06 à 17:33
aaaaaaaaaaah honte à moi!!

tu ne peux utiliser ce type d'initialisation qu'a la déclaration de ta structure !!

sinon faut acceder à tes membres par le point, un à un, et dans ce cas là je te conseille de faire une fonction d'initialisation (en C++, tu utiliserais un constructeur de classe, c'est beaucoup plus propre...)

et sinon non tu ne peux pas passer un parametre par defaut...aller taper qq caractères à chaque appel de tes fonctions c'est pas si terrible!

Même si ça existait je sais pas si ca serait tres malin. Imagine qu'un jour , t'as envie (ça se controle pas ces choses là, c'est pervers!) de faire gerer plusieurs tableaux de ton objet... Comment tu fais si tu appelles toutes tes fonctions automatiquement avec un seul tableau?faut en général tout refaire, et donc les quelques minutes que tu as gagné en évitant de taper le nom de ton tableau à chaque fois est largement perdu!

Quand tu programmes il faut toujours essayer de penser à laisser le code facilement ramaniable pour des améliorations futures et réutilisable pour d'autres programmes (c'est bien connus les informaticiens sont des gros fénéants!Smiley)
__________________________
L'élève heureux est celui qui, comme la rivère, suit son cours dans son lit.
Et n'oubliez pas :Seb, c'est bien!

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Alp
Superviseur :
- Système d'ex.
- Méthodologie.
- C & C++
Modérateur :
- Bavardages
Chef de projet(s) :
- My SDL Lib

Avatar de Alp
Inscrit : 24/06/2004
Messages : 2547
Message
#91440
Posté le 19/03/06 à 19:20
Salut,
Alors, tu n'as le droit d'utiliser {truc,bidule,machin} pour initialiser une structure seulement à la ligne même ou tu décalares ta structure, ou ton tableau de structure.
Donc si tu le fais dans les lignes suivantes, t'es obligé de faire :

tab[1].nombre = 1; // etc ...

Donc autant faire une fonction init() qui s'en charge oui ...
Bref, vive les constructeurs ... Comme tu travailles en C++ tu peux faire un constructeur pour ta structure...
__________________________
Be C++
Mon Blog (C++, Intelligence Artificielle, Prolog)

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Pyrrha
Nouveau membre
Inscrit : 19/03/2006
Messages : 8
Message
#91463
Posté le 19/03/06 à 22:29
Merci bien !!
Si un élément essentiel est à tirer de tout ça, c'est :
- les var glogales -> kick out (sauf cas de forces ultra majeures)
- adaptabilité du code
- vraiment étudier le système de classes

Je pense que je vais tout passer en classe.

Bon je reprend tt ça, et vous remercie pour votre temps accordé !

Smiley

tchuss tchuss !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Alp
Superviseur :
- Système d'ex.
- Méthodologie.
- C & C++
Modérateur :
- Bavardages
Chef de projet(s) :
- My SDL Lib

Avatar de Alp
Inscrit : 24/06/2004
Messages : 2547
Message
#91464
Posté le 19/03/06 à 22:49
Tu sais, en C++, les class et les structures sont casi identiques, simplement que les membres sont publics par défaut dans des structures, alors qu'ils sont privés par défaut dans des class ...
Il faut juste mettre en application la POO telle que nous l'offre le C++ ...

Donc en effet, variables globales kick out toussa, car la modularité en est réduite, puisque ton code dépendra forcément de celles là.
Adaptabilité du code => accrue si tu vires les variables globales ^^
Le système de class, dans le sens POO réelle, est ultra puissant, et facilite beaucoup la tache; à étudier, en effet Smiley

Bon courage à toi, n'hésite pas à repasser poser tes questions sur la POO ou quoique ce soit d'autre ^^
__________________________
Be C++
Mon Blog (C++, Intelligence Artificielle, Prolog)

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM C++ - CONSOLE



    PAGES : [1] [2]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.