Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
827 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Constructeur par recopie pour Tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Constructeur par recopie pour Tableau

n°1499982
CMGrille88
Posté le 07-01-2007 à 15:22:30  profilanswer
 

Bonjour,
Je ne comprend pas pourquoi mon constructeur par recopie fonctionne pas. Le but est de recopier tout simplement le tableau de la classe GrilleCaractere. Si je pouvais avoir une petite explication aussi sur les constructeur par recopie car je crois que j'ai pas bien dût comprendre le cours. Merci Beaucoup  :??:  
 

Code :
  1. class GrilleCaractere
  2. {
  3. private char tab[][];
  4. private int largeur, hauteur;
  5. private char caractere;
  6. public GrilleCaractere ()
  7. {
  8.  int cptLargeur, cptHauteur;
  9.  cptLargeur=0;
  10.  cptHauteur=0;
  11.  largeur=8;
  12.  hauteur=5;
  13.  tab=new char[hauteur][largeur];
  14.  while(cptLargeur<largeur)
  15.  {
  16.   cptHauteur=0;
  17.   while(cptHauteur<hauteur)
  18.   {
  19.    tab[cptHauteur][cptLargeur]='-';
  20.    cptHauteur++;
  21.   }
  22.   cptLargeur++;
  23.  }
  24. }
  25. public GrilleCaractere (GrilleCaractere tab)
  26. {
  27.  int cptLargeur, cptHauteur;
  28.  cptLargeur=0;
  29.  cptHauteur=0;
  30.  tab=new GrilleCaractere();
  31.  largeur=tab.largeur;
  32.  hauteur=tab.hauteur;
  33.  System.out.println(largeur);
  34.  while(cptLargeur<largeur)
  35.  {
  36.   while(cptHauteur<hauteur)
  37.   {
  38.    this.tab[cptHauteur][cptLargeur]=tab[cptHauteur][cptLargeur];
  39.    cptHauteur++;
  40.   }
  41.   cptLargeur++;
  42.  }
  43. }

Message cité 1 fois
Message édité par CMGrille88 le 07-01-2007 à 15:24:10
mood
Publicité
Posté le 07-01-2007 à 15:22:30  profilanswer
 

n°1499987
leonhard
Posté le 07-01-2007 à 15:35:22  profilanswer
 

t'es sûr de ce qui se passe à la ligne 35?  c'est bien this.tab que tu réinitialise ? Pour éviter les confusions, tu pourrais renommer le paramètre de la méthode déclarée à la ligne 29..
 
D'autre part je comprends pas tellement pourquoi tu as des boucles while et pas des boucles for pour parcourir le tableau

n°1499993
zapan666
Tout est relatif
Posté le 07-01-2007 à 15:43:04  profilanswer
 

CMGrille88 a écrit :

Bonjour,
Je ne comprend pas pourquoi mon constructeur par recopie fonctionne pas.


ah ?

 

ça existe en java ça ?  [:autobot]
Pour moi, c'est un constructeur comme un autre...

 


sinon le problème est que tu n'alloue pas de mémoire pour ton tableau dans ton second constructeur.
edit : ouhla, apres reetude du code, leonhard a raison, c'est un peu la merde tes tab de tab de tab :D
edit 2 :

Code :
  1. tab=new GrilleCaractere();


ça n'a aucun sens

 

Si tu parle tu tab que tu passe en parametre, tu flingue l'objet que tu passe en paramètre, c'est pas très sympa pour celui qui appelle la fonction et qui après perd son objet...

 

si tu parle du membre tab[][], c'est pas très sympa pour le compilateur car le char[][] est un type incompatible avec GrilleCaractere

 

et la méthode clone() permet de faire une copie d'un objet (pour information)


Message édité par zapan666 le 07-01-2007 à 15:47:40

---------------
my flick r - Just Tab it !
n°1499996
CMGrille88
Posté le 07-01-2007 à 15:52:54  profilanswer
 

Concrètement faut que je fasse comment sans utiliser de clone?
Merci

n°1499999
zapan666
Tout est relatif
Posté le 07-01-2007 à 15:56:11  profilanswer
 

Code :
  1. public GrilleCaractere (final GrilleCaractere tab)
  2.         {
  3.          
  4.            
  5.             largeur=tab.largeur;
  6.             hauteur=tab.hauteur;
  7.            this.tab = new char[largeur][hauteur];
  8.             for ( int x = 0 ; x < this.tab.length ; x++)
  9.             {
  10.                 for ( int y = 0 ; y < this.tab.length ; y++)
  11.                 {
  12.                     this.tab[x][y]=tab[x][y];
  13.                    
  14.                 }
  15.                
  16.             }   
  17.         }


Message cité 1 fois
Message édité par zapan666 le 07-01-2007 à 15:56:40

---------------
my flick r - Just Tab it !
n°1500004
CMGrille88
Posté le 07-01-2007 à 16:06:06  profilanswer
 

zapan666 a écrit :

Code :
  1. public GrilleCaractere (final GrilleCaractere tab)
  2.         {
  3.          
  4.            
  5.             largeur=tab.largeur;
  6.             hauteur=tab.hauteur;
  7.            this.tab = new char[largeur][hauteur];
  8.             for ( int x = 0 ; x < this.tab.length ; x++)
  9.             {
  10.                 for ( int y = 0 ; y < this.tab.length ; y++)
  11.                 {
  12.                     this.tab[x][y]=tab[x][y];
  13.                    
  14.                 }
  15.                
  16.             }   
  17.         }



 
Merci bocou


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Constructeur par recopie pour Tableau

 

Sujets relatifs
[C++] Lecture d'un .txt & enregistrement dans un tableau (devc++)?Probleme basic pour lister un tableau !
Tableau dynamique sous ASP.net (C# et SQL Server)[HTML / JS] Tableau triable
[RESOLU]Trier un tableau a deux dimensionsConseil : map ou tableau ?
[HTML / CSS ] Pb de divRécupéré un tableau d'une page HTML
[HTML]tableau 
Plus de sujets relatifs à : Constructeur par recopie pour Tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR