Forum Le CBNA
Le Forum du CBNA a pour but de vous aider dans l'utilisation de GameMaker. Premier forum Francophone sous GameMaker, vous trouverez des .gmd, .gm6, .gmk, scripts, logiciels et d'autres ressources sur Le CBNA.
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S’enregistrerS’enregistrer  ConnexionConnexion  
Poster un nouveau sujet   Répondre au sujet
 

Structure C++

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
M@d_Doc
Modérateur 'Programmation'



Age : 18
Inscrit le : 12 Fév 2005
Messages : 4055
Localisation : 47°44'8.04
 : ────────── :
Projet Actuel : trouver un contrat
Avancement : 
100/100100/100100/100 (100/100)

MessageSujet: Structure C++   Mer 16 Jan - 21:11

Est ce que quelqu'un pourrait m'expliquer ce qu'est concretement struct en C++ ? Parce que j'ai du mal à piger le concept et l'utilité du schlm... scmilb... du truc noel
_________________
Click for a free cookie
Revenir en haut Aller en bas
daminetreg
- Administrateur -



Age : 18
Inscrit le : 11 Fév 2005
Messages : 16209
Localisation : Siege du CBNA!
 : ────────── :
Projet Actuel : Game Maker Human Input
Avancement : 
60/10060/10060/10060/100 (60/100)

MessageSujet: Re: Structure C++   Mer 16 Jan - 22:59

Une structure?
C'est assez simple, en fait au lieu de devoir appellé les variables une à une, une structure est un groupement de variables, ça permet entre autre, de faire des listes chaînées, qui sont très utiles pour stocker des grands tableaux qui se modifient en permanence, et donc pour faire des tris par insertion par exemple.

Je vais illustrer les structures, rapidement, en faisant une structure personnage. On va dire d'ailleurs qu'une Structure c'est comme un objet dans Game Maker, qui ne peut cependant pas prendre de code, il peut seulement stocker des variables mais c'est pour illustrer.

Donc:
On met toujours une majuscule pour les noms de structure, c'est une règle non obligatoire mais la plupart des programmeurs font ainsi, dans l'idée de bien reconaîtres variables et structures de variables.
Code:
struct Personnage
{
char nom[20];

int x;
int y;
int force;
};


Une structure se définie en dehors des fonctions, en général on les défini dans des .h, mais pour un rapide test tu peux le faire au dessus du main.
On vient en fait de créer un nouveau type de variable, de nom: struct Personnage.

Ce que l'on peut faire c'est carrément créer un nouveau type, plutôt que de toujours devoir écrire struct Personnage dans notre code, on pourra par exemple juste ecrire: Sperso pour le type de structure qu'on créera.
Ainsi avant ou après la définition de la structure on écrira:
Code:
typedef struct Personnage Sperso;


On aura ainsi un alias pour notre nouveau type de variable, qui n'est en fait qu'un groupement de plusieurs variables.


Ensuite dans les fonctions, dans main par exemple, on va créer une structure du type qu'on a défini. C'est un peu comme l'instance d'un objet, cependant on utilise pas ce vocabulaire pour une structure. Il faut y faire attention.
Code:

int main (void)
{
Sperso MonPersonnage;/* Créer une structure de type Sperso et de nom MonPersonnage... */

/ *On va maintenant entrer les valeurs qui seront contenues dans les différentes variables de MonPersonnage. */
MonPersonnage.nom = "Bryan";
MonPersonnage.x = 12;
MonPersonnage.y = 23;
MonPersonnage.force = 2;

/* Nous allons maintenant les afficher */
printf("%s - %d - %d - %d",MonPersonnage.nom,MonPersonnage.x,MonPersonnage.y,MonPersonnage.force);

return 0;
}


Voilà, cela affichera donc les valeurs stockées dans la structure, il faut savoir que les structures peuvent paraître inutiles au premier abord, mais au contraire cela permet beaucoup de chose: trimbaler qu'une variables lors des appels de fonction, si on créé un thread POSIX on ne peut passer qu'un argument, donc qu'une variable, en faisant une structure on peut passer plusieurs variables, en faisant passer la structure.
C'est également très utile pour toutes les données vouées à être triées, car on peut faire des listes chaînées (des structures reliées entre elles par un pointeur vers la structure suivante et un pointeur vers la précédente).

Voili voilou, si jamais tu as encore des question, ou si je me suis trompé dans la syntaxe, n'hésites pas.
_________________

Mon CV
Le CBNA Tous Ensemble! Réalisons!
I want (and I need) to show you my work, but the time is against me.
Revenir en haut Aller en bas
M@d_Doc
Modérateur 'Programmation'



Age : 18
Inscrit le : 12 Fév 2005
Messages : 4055
Localisation : 47°44'8.04
 : ────────── :
Projet Actuel : trouver un contrat
Avancement : 
100/100100/100100/100 (100/100)

MessageSujet: Re: Structure C++   Mer 16 Jan - 23:05

ah oook... en fait ouais ça parait bien utile...
J'ai compris le principe... je vais un peu appliquer tout ça pour que ça rentre ^^
_________________
Click for a free cookie
Revenir en haut Aller en bas
daminetreg
- Administrateur -



Age : 18
Inscrit le : 11 Fév 2005
Messages : 16209
Localisation : Siege du CBNA!
 : ────────── :
Projet Actuel : Game Maker Human Input
Avancement : 
60/10060/10060/10060/100 (60/100)

MessageSujet: Re: Structure C++   Jeu 17 Jan - 9:46

J'aurais pu éclaircir encore en disant: que cela permet d'associer plusieurs variables de types différent.

On peut faire des tableaux de structure, ça permet alors d'avoir un tableau contenant tant des int, que des chars ou des pointeurs. C'est principalement usé pour ça, car en C++ on fait le plus souvent des objets lorsqu'il s'agit de regrouper des variables, par contre en C on a que ça. gnii
_________________

Mon CV
Le CBNA Tous Ensemble! Réalisons!
I want (and I need) to show you my work, but the time is against me.
Revenir en haut Aller en bas
lv3895
Utilisateur confirmé: Rang *



Inscrit le : 09 Sep 2007
Messages : 264
 : ────────── :
Projet Actuel : X Number v.1.02
Avancement : 
60/10060/10060/10060/100 (60/100)

MessageSujet: Re: Structure C++   Sam 26 Jan - 23:30

C'est pratique! En fait, c'est un peu comme du SQL : une table avec plusieurs variable contenant un nombre ou un mot, et quand on fait un MySql Fetch Array (enfin je crois que ça s'appelle comme ça) pour afficher le contenue d'une table, non?
Revenir en haut Aller en bas
daminetreg
- Administrateur -



Age : 18
Inscrit le : 11 Fév 2005
Messages : 16209
Localisation : Siege du CBNA!
 : ────────── :
Projet Actuel : Game Maker Human Input
Avancement : 
60/10060/10060/10060/100 (60/100)

MessageSujet: Re: Structure C++   Dim 27 Jan - 21:59

Tu mélange un peu deux chose: SQL et PHP, mais ce que tu dis est vrai. Wink

Dans:
Code:

$query_result = mysql_query("SELECT usernarme FROM usertable GROUP BY username;");
$abc = mysql_fetch_array($query_result);
echo $abc;

mysq_fetch_array() est une commande php qui retourne une à une les enregistrements du résultats d'une requête SQL sur une base de données de type Mysql.
Alors que ce qu'on appelle du SQL (Structured Query Language) qui est un langage standard (il y a en plusieurs mais SQL 2 est le plus souvent utilisé) qui permet simplement de parler avec la base de données, toutes les bases de données relationnelles fonctionnent avec SQL.

En général SQL permet simplement de regrouper des champs (vues), créer des index (pour améliorer l'accès aux données), créer des tables, des champs, des relations (pour éviter la redondance de l'information), ajouter des enregistrements, en modifier et supprimer des tables et des enregistrements, également modifier ou créer la structure des tables.

Ensuite on traite les données récupérées, d'où le rôle de mysql_fetch_array qui reçoit un tableau de valeurs généré par MySQL suite à une requête SQL et qui permet de dissocier les différentes lignes du tableau pour les afficher une à une.

Enfin MySQL est un SGBD (Système de Gestion de Base de données) relationnel, et SQL est le langage utilisé pour y accèder mais SQL est utilisé dans toutes les autres SGBD telles que Sybase, SQLite, Oracle etc.

Voili voilou, mais en effet on peut considérer que les structures sont un peu des tables, même si quelque part c'est très différent. clinoeuil
_________________

Mon CV
Le CBNA Tous Ensemble! Réalisons!
I want (and I need) to show you my work, but the time is against me.
Revenir en haut Aller en bas
lv3895
Utilisateur confirmé: Rang *



Inscrit le : 09 Sep 2007
Messages : 264
 : ────────── :
Projet Actuel : X Number v.1.02
Avancement : 
60/10060/10060/10060/100 (60/100)

MessageSujet: Re: Structure C++   Lun 28 Jan - 7:36

Oui, mais c'était juste une petite comparaison de principe. Quand au SQL et au PHP, je m'en fiche j'utilise les deux en même temps donc j'ai pas à différencier tant que ça marche p_lol
Revenir en haut Aller en bas
Gab666
Modérateur 'Zut' & 'Ablationer'



Age : 17
Inscrit le : 02 Aoû 2005
Messages : 5263
Localisation : **I move away from the mic to breathe in
 : ────────── :
Avancement : 
0/1000/1000/100 (0/100)

MessageSujet: Re: Structure C++   Lun 28 Jan - 14:57

Par contre Dam parle plus des structures C, en C++, c'est identique à une classe(avec les méthodes, héritage et tout) sauf que si on utilise pas le mot clé public: il est là par défaut contrairement aux classes que c'est private.
_________________
PIS MANIAC PREND DES BAINS !
Revenir en haut Aller en bas

Structure C++

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Programmation :: Programmation-
Poster un nouveau sujet   Répondre au sujet