Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Langage C++ > Tableau à l'aide des attributs d'une classe > Lecture du sujet

Tableau à l'aide des attributs d'une classe

Vous devez être inscrit pour pouvoir poster des messages

Page : 1 
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1 
Hors ligne SkyJedi # Posté le 10/05/2008 à 20:19:40
J'adore la smirnoff !
Avatar
Groupe : Membres
Salut,

j'ai un petit problème avec une de mes classes : (j'ai coupé une partie)
Code : C++
1
2
3
private:
    int m_largeur, m_hauteur, m_nbLayers;
    int m_map[m_largeur][m_hauteur][m_nbLayers];


J'ai plein d'erreurs de compilation :
Image utilisateur

Et si je fais Code : C++
1
int m_map[m_largeur][m_hauteur][m_nbLayers];
dans une des méthodes de la classe il n'y a pas d'erreur de compilation mais un bug de l'application à ce moment là.
Comment contourner le problème ?
Édité le 10/05/2008 à 20:32:23 par SkyJedi

"Ta mère elle est tellement grosse qu'elle ne rentre pas dans un malloc()"
"Windows est à l'informatique ce que la tecktonick est à la musique..."
"Un vrai geek, c'est celui qui croit que dans 1km il y a 1024 mètres"
 
Hors ligne Nanoc # Posté le 10/05/2008 à 20:33:00
Apprenez à utiliser la STL !!
Avatar
Groupe : Membres
Pour créer un tableau de ce type, il faut que les grandeurs soient des constantes connues à la compilation. Donc pas possible dans une classe sous cette forme.

Pour une bonne solution, suis le tuto proposé dans ma signature.

Exercices de C++ pour tous les niveaux !
Mes tutos: Tri de Shell --- [C++] Gestion des exceptions --- [C++] Manipulateurs de flux
---
[C++] Notions avancées (suite du cours de M@teo21) (New)

Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça.

 
Hors ligne SkyJedi # Posté le 12/05/2008 à 17:21:51
J'adore la smirnoff !
Avatar
Groupe : Membres
J'ai suivi ton tuto, j'ai donc :
Code : C++
1
vector<vector<vector<int> > > map;

Pour ma map. Comment resize un tableau tridimensionnel? J'ai essayé ça :
Code : C++
1
map.resize(10, vector(10,vector<int>(10, 0)));

Mais ça ne marche pas :/ (missing template arguments)

Comment puis-je faire ?

"Ta mère elle est tellement grosse qu'elle ne rentre pas dans un malloc()"
"Windows est à l'informatique ce que la tecktonick est à la musique..."
"Un vrai geek, c'est celui qui croit que dans 1km il y a 1024 mètres"
 
Hors ligne Nanoc # Posté le 12/05/2008 à 17:43:54
Apprenez à utiliser la STL !!
Avatar
Groupe : Membres
Personellement, je construirais directement le tavbleau avec la bonne taille plutôt.

Exercices de C++ pour tous les niveaux !
Mes tutos: Tri de Shell --- [C++] Gestion des exceptions --- [C++] Manipulateurs de flux
---
[C++] Notions avancées (suite du cours de M@teo21) (New)

Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça.

 
Hors ligne master dwarf # Posté le 12/05/2008 à 22:13:02
Salut à tous collègues ZérOs !
Groupe : Membres
tu peux garder ton système de tableau, mais tu devras l'allouer dynamiquement dans le constructeur de ta classe.
Dans la déclaration de la classe :
Code : C++
1
2
3
private:
    int m_largeur, m_hauteur, m_nbLayers;
    int *m_map;

Puis le constructeur :
Code : C++
1
m_map = new int[m_largeur * m_hauteur * m_nbLayers];

Le problème c'est qu'il te faudra un petit calcul supplémentaire pour accéder aux bonnes adresses du tableau, parce que tu ne peux pas créer de tableaux à trois entrées il me semble :-°
Après je ne sais pas, c'est peut-être plus simple avec des vecteurs... A toi de voir
Bonne chance ;)


:( Haha ! MSN et SMS ne nous aideront pas. La Vraie communication ne se fait qu'avec les yeux...
 
Hors ligne bilaliste # Posté le 13/05/2008 à 15:40:48
Groupe : Membres
je vx avoire des leçon ce ki concerne les fichiers et l'accées ver eu et mm les tableau. Merci d'avance les amis
Hors ligne MatteX # Posté le 13/05/2008 à 15:54:17
The cake is a lie!
Avatar
Groupe : Membres
Citation : bilaliste
je vx avoire des leçon ce ki concerne les fichiers et l'accées ver eu et mm les tableau. Merci d'avance les amis


m'euh...

J'ai pas vraiment compris ton langage, je crois que c'est un de ces dialecte texto. Bon enfin, si tu comprends le français : Démarre un nouveau fil de discussion et pose ta question dans un français convenable.

* MatteX se tape sur les doigts : «Fatiguant va !».


[EDIT]

Bon avec tout ça j'ai oublié que je voulais répondre au sujet en cours. :p


@master dwarf : L'utilisation des std::vector == tableau dynamiques sécuritaires.

@SkyJedi : Regarde des références sur la STL. Tu remarqueras qu'il y a un constructeur paramétrique qui ressemble à un resize.

Tout ce que tu as à faire c'est de l'utiliser dans la liste d'initialisation (Voir le cours sur les classes).

[/EDIT]
Édité le 13/05/2008 à 15:59:05 par MatteX

liens utiles: FAQ C++ (developpez.com) | GotAPI.com | H-Deb
Mon futur ex-blog | Logique : http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx
Propriétaire d'un Dell Inspiron 1720, Core 2 Duo 2.4Ghz, 3Go DDR2, 8600M GT 256Mo. Avec Blu-Ray!
 

Retour au forum "Langage C++" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news | XHTML 1.0 | CSS 2.0
Édité par Simple IT SARL : Nous contacter | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 256 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 4.195s (4.1769s)