Toujours constructeur, pointeurs, agrégation

Toujours constructeur, pointeurs, agrégation - C++ - Programmation

Marsh Posté le 19-04-2005 à 12:14:47    

Bonjour,
 
Après avoir tenu compte des remarques de Schnapsmann et Harkonnen ,j'ai reécrit la classe ce matin.
J'ai reposté car je ne sais pas mettre du code C++ en réponse rapide :)
 

Code :
  1. class Tableau                       
  2.       {
  3.       protected :
  4.       int *ad;
  5.       int dimension;
  6.      
  7.       public :
  8.            
  9.       // Permet d'afficher et affecter membre par membre             
  10.       int & operator [] (int dim) 
  11.           { return ad[dim]; }
  12.              
  13.       // Permet l'affectation entre deux objets "Tableau" s'ils sont !=         
  14.       Tableau & operator = (Tableau &tab)
  15.           { if (this != &tab)
  16.               {
  17.               delete [] ad;
  18.               ad= new int[dimension=tab.dimension];
  19.               for (int i=0;i<dimension;i++) ad[i]= tab.ad[i];
  20.               }
  21.              return *this;
  22.           } 
  23.      
  24.       Tableau(int dimension)                // Constructeur
  25.           { ad= new int[this->dimension=dimension]; } 
  26.              
  27.       Tableau (const Tableau &t)            // Constructeur de copie
  28.           {
  29.           ad= new int[dimension=t.dimension];
  30.           for (int i=0; i< dimension;i++) ad[i]= t.ad[i];
  31.           }
  32.              
  33.       ~Tableau()
  34.           { delete [] ad; }
  35.       };
  36. int main()
  37.     {
  38.     Tableau tab1(3);
  39.     Tableau tab2(3);
  40.     // Remplissage, tab1 par des valeurs, tab2 par défaut.
  41.     for (int i=0; i<3; i++) tab1[i]=i; 
  42.            
  43.     for (int i=0; i<3; i++)                             
  44.         { tab2[i]=0; cout << tab1[i] << "\t" << tab2[i] << endl; }
  45.        
  46.     tab2=tab1;        // affectation
  47.    
  48.     for (int i=0; i<3; i++)                     
  49.         { cout << tab1[i] << "\t" << tab2[i] << endl; }
  50.    
  51.    
  52.    
  53.     system("PAUSE" );
  54.     return 0;
  55.     } ;


 
 
Bon ca a l'air de marcher.
Reste à voir la gestion pour un type "pointeur"  
(un Tableau *tabp1 = new BigTableau(3) avec BigTableau héritant de Tableau par exemple) mais avec tous vos précieux renseignements, je devrais m'en sortir et corriger beaucoup d'erreurs - dont certaines étaient dans mon cours même .. -.
Un GRAND merci donc.
 
Si vous voyez encore autre chose, n'hésitez pas ...  
 
 
Bon y'a des magos et des fighter qui m'attendent moi :). Paraît que je suis en congés lol.
 
Bonne journée à toutes et tous.
 

Reply

Marsh Posté le 19-04-2005 à 12:14:47   

Reply

Marsh Posté le 19-04-2005 à 14:35:33    

Déjà pour répondre, il n'y a pas que la réponse rapide, il y a un bouton Répondre juste au dessus à gauche.
 
Ensuite pourquoi tu n'utilises pas un vector pour ton tableau ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed