laderivier
Messages postés9Date d'inscriptionsamedi 24 décembre 2005StatutMembreDernière intervention24 novembre 2006
-
18 nov. 2006 à 20:59
laderivier
Messages postés9Date d'inscriptionsamedi 24 décembre 2005StatutMembreDernière intervention24 novembre 2006
-
24 nov. 2006 à 22:46
J'ai recontrer un problème complètement fou à mes yeux en voulant creer un classe matrice, qui effectue des calcul de base sur les matrice.
voilà le code complet :
int main()
{
int lignes,colonnes;
matrice M = matrice("M");
M.init(3,3);
cout<<M;
cout<<M;
cout<<M;
M.~matrice();
system("PAUSE");
return EXIT_SUCCESS;
}
//---------------------------------------------------------------------------------
// Après avoir compilé, j'obtient ça comme résultat :
//---------------------------------------------------------------------------------
M= 1 1 1 // première affichage ok !
1 1 1
1 1 1
M= 0 1 1 // pourquoi la première valeur est modifiée ???
1 1 1
1 1 1
M= 4013776 1 1 // est là encore une fois ?
1 1 1
1 1 1
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 18 nov. 2006 à 21:06
Salut:
Pourquoi ce "M.~matrice ()" ?
Le destructeur sera appelé implicitement puisque tu utilises de l'allocation statique, si tu utilises de l'allocation dynamique de la mémoire il faut appeler delete
laderivier
Messages postés9Date d'inscriptionsamedi 24 décembre 2005StatutMembreDernière intervention24 novembre 2006 24 nov. 2006 à 22:46
merci, d'vaoir ajouter quelque infos supplémentaire sur l'amélioration mon code.
Malheureusement je suis un débutant en C++ (j'en fait que depuis 2 mois), et donc je viens à peine de voir la notion de classe, ce qui fait que je ne vois pas très bien le sens de "vraie matrice", mais n'empêche que je vais essayer de comprendre ce que tu me propose.
Pour la critique sur l'affichage en commençant à 1 et non pas à 0, c'est pour que mes matrices puissent être utilisées avec la terminologie mathématique qui nomme le premier élément M[1][1] et non pas M[0][0]. (ce qui facilite le passage des "astuces" en maths aux "astuces" en info).
Si g bien compris l'utilité du for.
for(j=1; j<=M.C; j++)
o << M.tab[(i-1) * M.C + j-1] << "\t";
Ce bout de code implique que j varie.