CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet résolu : [C++] Variables globales?

News culture
La Planète des Singes : Le Nouveau Royaume - la révolution simienne est en marche !
DébutPage précedente
1
Page suivantePage suivante
BlackChinchilla BlackChinchilla
MP
Niveau 10
02 juillet 2015 à 19:42:27

Bonjours, je me lance enfin en C++ :noel: (Oui, c'est moi, le seul mec qui fait du Pascal :rire: ! )

Et du coup, je cherche à adapter certain de mes projets Delphi en C++, mais il parait que sur ce langage, les variables globales c'est cancer :hap:

D'où ma question, est-ce vraiment le cas, et si oui, comment faire pour par exemple, réutiliser une variable ou un tableau dans une fonction, par exemple:

->J'ai un tableau de 50 boolean nommé bool_slot[0..49].
->Je lance une fonction du genre classe.ID== fonction();
->ma fonction passe les boolean en ordre jusqu'à trouver le premier false disponible, puis sort de la chaine et me donne le # de la case 'libre'

Et du coup, je dois conserver le tableau à un endroit où il ne s'effacera pas, et en même temps, l'utiliser dans ma fonction, mais comment? :( ?

Merci d'avance :noel:

Message édité le 02 juillet 2015 à 19:44:32 par BlackChinchilla
Darkandgel Darkandgel
MP
Niveau 10
02 juillet 2015 à 20:34:39

Tu le passes en parametre et en type de retour ?

tabeauTrié=trier(tableau);

BlackChinchilla BlackChinchilla
MP
Niveau 10
02 juillet 2015 à 21:43:50

Le 02 juillet 2015 à 20:34:39 Darkandgel a écrit :
Tu le passes en parametre et en type de retour ?

tabeauTrié=trier(tableau);

Mais je veux seulement avoir le # de la case qui a été changée (soit la première case 'false' trouvée) :(

J'ai trouvé un truc parlant de pointeur en recherchant, par contre, est-ce ce que je cherche?

godrik godrik
MP
Niveau 22
02 juillet 2015 à 22:24:06

Oui les pointeur peuvent te permettre de faire ca. Essentiellement tu passes a ta fonction un pointeur ou la fonction va ecrire l'information que tu as besoin de recuperer.
Les variables globales sont tout aussi mal en C++ qu'en Pascal. Mais si ton programme fonctionne, pourquoi pas.

Ace_Attorney Ace_Attorney
MP
Niveau 10
02 juillet 2015 à 22:53:27

Le 02 juillet 2015 à 19:42:27 BlackChinchilla a écrit :
Bonjours, je me lance enfin en C++ :noel: (Oui, c'est moi, le seul mec qui fait du Pascal :rire: ! )

Et du coup, je cherche à adapter certain de mes projets Delphi en C++, mais il parait que sur ce langage, les variables globales c'est cancer :hap:

D'où ma question, est-ce vraiment le cas, et si oui, comment faire pour par exemple, réutiliser une variable ou un tableau dans une fonction, par exemple:

->J'ai un tableau de 50 boolean nommé bool_slot[0..49].
->Je lance une fonction du genre classe.ID== fonction();
->ma fonction passe les boolean en ordre jusqu'à trouver le premier false disponible, puis sort de la chaine et me donne le # de la case 'libre'

Et du coup, je dois conserver le tableau à un endroit où il ne s'effacera pas, et en même temps, l'utiliser dans ma fonction, mais comment? :( ?

Merci d'avance :noel:

Effectivement, les variables gobales, c'est cancer.
Tu complexifies énormément la lecture du code en ne spécifiant pas réellement de dépendance à ta variable.

Sinon, je vois deux solutions à ton problème.
Personnellement, j'aurais fais un wrapper sous forme d'interface (+ implémentation), et j'aurais envoyé un pointeur sur l'interface à chaque classe qui a besoin de manipuler ton tableau.

La deuxième solution que je vois, que je suis personnellement moins fan, c'est de faire un singleton qui retourne ton tableau, je suis moins fan car au fond, ça fait le même fonctionnement qu'une variable globale, mais ça oblige le développeur derrière à avoir une dépendance qui serait le classe singleton.

(bon, j'ai pas lu le reste des messages avant d'écrire ce message, mais les solutions que j'ai cité sont proches du domaine de l'orienté objet en général ainsi que la méthodologie du C++)

Ace_Attorney Ace_Attorney
MP
Niveau 10
02 juillet 2015 à 22:55:47

Ah, par contre, les pointeurs, je te déconseille de les utiliser en C++, non pas car c'est "mauvais", mais il y a des outils plus adaptés, regardent du côté des références.

papy386 papy386
MP
Niveau 10
03 juillet 2015 à 11:38:04

Euh, Juste pour information un tableau en c++ c'est en fait un pointeur déjà :)

int tableau[] équivaux a int * tableau, c'est juste la mémoire pointé qui diffère!

BlackChinchilla BlackChinchilla
MP
Niveau 10
04 juillet 2015 à 01:38:41

Merci pour toutes les réponses, je vais passer une à une et rechercher ce que vous avez mentionnés :noel:

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : godrik, LGV
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment