Const copie c++

Signaler
Messages postés
1
Date d'inscription
dimanche 16 août 2009
Statut
Membre
Dernière intervention
1 novembre 2009
-
Messages postés
3829
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
8 janvier 2021
-
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

Messages postés
37
Date d'inscription
jeudi 22 octobre 2009
Statut
Membre
Dernière intervention
10 décembre 2011
15
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

@+
Messages postés
3829
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
8 janvier 2021
114
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.