Const copie c++

amoulina Messages postés 1 Date d'inscription dimanche 16 août 2009 Statut Membre Dernière intervention 1 novembre 2009 - 1 nov. 2009 à 16:06
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 - 2 nov. 2009 à 10:05
Salut tout le monde svp est ce qu'ilya quelqun qui peut m'aider à corriger une erreur que me signale le viuel c++ conçernant le const de copie.
MatriceCreuse::MatriceCreuse(MatriceCreuse &matsource)
{
int matricecopie [100][3];
for(int i=0; i < matsource.NbElem ; i++)
{
for(int j=0; j<3; j++)
matricecopie[i][j]=matsource.matrice[i][j];

}
n = matsource.n;
m = matsource.m;
nb = matsource.nb;

}

2 réponses

stagiairecpp Messages postés 37 Date d'inscription jeudi 22 octobre 2009 Statut Membre Dernière intervention 10 décembre 2011 15
1 nov. 2009 à 18:44
Salut,

Avec ça ça donne quoi ?

MatriceCreuse::MatriceCreuse(MatriceCreuse *matsource)
{
int matricecopie [100][3];
for(int i=0; i < matsource->NbElem ; i++)
{
for(int j=0; j<3; j++)
matricecopie[i][j]=matsource->matrice[i][j];

}
n = matsource->n;
m = matsource->m;
nb = matsource->nb;

}


Ensuite tu appelles avec :
MatriceCreuse::MatriceCreuse(&matsource)
ou
MatriceCreuse::MatriceCreuse(matsource) si pointeur

@+
1
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
2 nov. 2009 à 10:05
Peux-tu donner l'erreur retournée par le compilateur, ainsi que le morceau de code incriminé ? (Pas seulement la fonction, mais aussi le bout de code qui appelle celle-ci).
A noter que si la matrice n'as pas vocation à être modifiée, tu devrais mettre "const MatriceCreuse &matsource" au lieu de "MatriceCreuse &matsource".

@stagairecpp: Ce n'est surement pas la cause du problème. "*" et "&" sont quasiment équivalents, à peu de chose près. Il est souvent préférable d'utiliser "&", notamment dans un cas comme celui-ci.
0
Rejoignez-nous