Bonjour,

Je débute en C++ et j'essaye de faire un petit projet pour appréhender toutes les facettes de ce langage. J'ai quelques notions en C mais toujours des problèmes avec ces satanés pointeurs, adresses etc...
Lorsque je lis un cours, je comprends pas trop mal mais il faut à chaque fois que je réfléchisse (trop longtemps...) lorsque je vois un *, ** ou &
Et donc je ne m'en sors pas, j'ai beau rabâcher tout ça, ça ne rentre pas...
Ca doit être l'âge...
En tout cas, je tente tout de même de développer un jeu de morpion.
Voici mes 3 fichiers :

Définition de ma classe Echiquier : l'objet possède un tableau à 2 dimensions de 3 x 3 (aie les problèmes vont venir de là...), une méthode init() et une methode print() :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
// morpion.h
 
#ifndef MORPION_H
#define MORPION_H
 
class Echiquier {
  public:
  int plateau[3][3] ;
  void init() ;
  void print() ;
} ;
 
#endif
Définition des fonctions : la méthode init() sur un objet de classe Echiquier rempli le tableau à 2 dimensions de 0; la méthode print() pour l'instant ne fait rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
// morpion.cpp
 
#include "morpion.h"
 
void Echiquier::init() {
  for ( int i=0; i<3; i++ ) {
    for ( int j=0; j<3; j++ ) {
      plateau[i][j] = 0 ;
    }
  }
}
 
void Echiquier::print() {
}
Le programme en lui-même qui créé un objet ech de la classe Echiquier et qui l'initialise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
// morpionTest.cpp
 
#include <iostream>
#include "morpion.h"
 
using namespace std;
 
int main() {
  Echiquier ech ;
  ech.init();
}
A la compilation,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
gcc morpion.cpp morpionTest.cpp
j'ai l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
morpion.cpp: In member function «void Echiquier::init()»:
morpion.cpp:8: erreur: invalid types «int[int]» for array subscript
Je me doute qu'il s'agit d'un problème du au tableau à deux dimensions et à l'utilisation de pointeurs pour remplir celui-ci. J'ai essayé ceci sans trop comprendre ce que je faisais mais l'erreur est la même :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
*plateau[i][j] = 0       
ou
**plateau[i][j] = 0 ;
Ca fait 2 jours que je tourne sur plein de tuto mais je n'arrive pas à m'en sortir.
Merci pour une explication !!!