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 :
- class Tableau
- {
- protected :
- int *ad;
- int dimension;
-
- public :
-
- // Permet d'afficher et affecter membre par membre
- int & operator [] (int dim)
- { return ad[dim]; }
-
- // Permet l'affectation entre deux objets "Tableau" s'ils sont !=
- Tableau & operator = (Tableau &tab)
- { if (this != &tab)
- {
- delete [] ad;
- ad= new int[dimension=tab.dimension];
- for (int i=0;i<dimension;i++) ad[i]= tab.ad[i];
- }
- return *this;
- }
-
- Tableau(int dimension) // Constructeur
- { ad= new int[this->dimension=dimension]; }
-
- Tableau (const Tableau &t) // Constructeur de copie
- {
- ad= new int[dimension=t.dimension];
- for (int i=0; i< dimension;i++) ad[i]= t.ad[i];
- }
-
- ~Tableau()
- { delete [] ad; }
- };
- int main()
- {
- Tableau tab1(3);
- Tableau tab2(3);
- // Remplissage, tab1 par des valeurs, tab2 par défaut.
- for (int i=0; i<3; i++) tab1[i]=i;
-
- for (int i=0; i<3; i++)
- { tab2[i]=0; cout << tab1[i] << "\t" << tab2[i] << endl; }
-
- tab2=tab1; // affectation
-
- for (int i=0; i<3; i++)
- { cout << tab1[i] << "\t" << tab2[i] << endl; }
-
-
-
- system("PAUSE" );
- return 0;
- } ;
|
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.