AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  

 

 Structure C++

Aller en bas 
AuteurMessage
M@d_Doc
Modérateur
M@d_Doc

Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Structure C++ Empty
MessageSujet: Structure C++   Structure C++ EmptyMer 16 Jan 2008 - 20: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

_________________
Structure C++ Control_commentTous les icones de gm utilisables sur le cbna ICI Structure C++ Main1_change_sprite
Revenir en haut Aller en bas
http://www.lecbna.org
daminetreg
Administrateur
daminetreg

Messages : 16996
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

Structure C++ Empty
MessageSujet: Re: Structure C++   Structure C++ EmptyMer 16 Jan 2008 - 21: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 : fr - de - en
Le CBNA Tous Ensemble! Réalisons!
Structure C++ U3dfr2
Revenir en haut Aller en bas
http://lecbna.org/
M@d_Doc
Modérateur
M@d_Doc

Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Structure C++ Empty
MessageSujet: Re: Structure C++   Structure C++ EmptyMer 16 Jan 2008 - 22: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 ^^

_________________
Structure C++ Control_commentTous les icones de gm utilisables sur le cbna ICI Structure C++ Main1_change_sprite
Revenir en haut Aller en bas
http://www.lecbna.org
daminetreg
Administrateur
daminetreg

Messages : 16996
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

Structure C++ Empty
MessageSujet: Re: Structure C++   Structure C++ EmptyJeu 17 Jan 2008 - 8: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 : fr - de - en
Le CBNA Tous Ensemble! Réalisons!
Structure C++ U3dfr2
Revenir en haut Aller en bas
http://lecbna.org/
lv3895
Utilisateur confirmé: Rang *
lv3895

Messages : 277
Projet Actuel : Survivre

Structure C++ Empty
MessageSujet: Re: Structure C++   Structure C++ EmptySam 26 Jan 2008 - 22: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
daminetreg

Messages : 16996
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

Structure C++ Empty
MessageSujet: Re: Structure C++   Structure C++ EmptyDim 27 Jan 2008 - 20: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 : fr - de - en
Le CBNA Tous Ensemble! Réalisons!
Structure C++ U3dfr2
Revenir en haut Aller en bas
http://lecbna.org/
lv3895
Utilisateur confirmé: Rang *
lv3895

Messages : 277
Projet Actuel : Survivre

Structure C++ Empty
MessageSujet: Re: Structure C++   Structure C++ EmptyLun 28 Jan 2008 - 6: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'
Gab666

Messages : 5339
Localisation : **I move away from the mic to breathe in

Structure C++ Empty
MessageSujet: Re: Structure C++   Structure C++ EmptyLun 28 Jan 2008 - 13: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
http://www.dermanium-online.webou.net/
Contenu sponsorisé




Structure C++ Empty
MessageSujet: Re: Structure C++   Structure C++ Empty

Revenir en haut Aller en bas
 
Structure C++
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 :: Développement :: Programmation-
Sauter vers: