Comportement C++ etrange
Fermé
Char Snipeur
-
21 avril 2004 à 15:06
BigSeb Messages postés 614 Date d'inscription vendredi 16 avril 2004 Statut Contributeur Dernière intervention 22 juillet 2005 - 26 avril 2004 à 09:21
BigSeb Messages postés 614 Date d'inscription vendredi 16 avril 2004 Statut Contributeur Dernière intervention 22 juillet 2005 - 26 avril 2004 à 09:21
A voir également:
- Comportement C++ etrange
- Coco comportement deviant ✓ - Forum Consommation et internet
- Pack de comportement minecraft ps4 - Forum Jeux vidéo
- Plainte et banissement d'un site ✓ - Forum Vos droits sur internet
- Pourquoi ce blocage ? quelque chose dans le comportement du navigateur nous a intrigué. - Forum Google Chrome
- Pack de comportement minecraft - Forum minecraft
6 réponses
blurk
Messages postés
486
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
15 mars 2009
160
21 avril 2004 à 16:28
21 avril 2004 à 16:28
Salut!
J'ai pas eu le temps de tester, mais
Le constructeur par défaut ne fait rien, or tu crée des instances *tmp de MATRIX2, et il n'y a pas de "new[]". Ce qui veut dire qu'il y a des variables dont le contenu n'est pas initialisé, donc valeur aléatoire, et je me demande même si il n'y aurait pas des problèmes d'allocation mémoire si tu réitère trop. En effet, si tu déclare *variable sans faire d'allocation...
bon courage!
J'ai pas eu le temps de tester, mais
Le constructeur par défaut ne fait rien, or tu crée des instances *tmp de MATRIX2, et il n'y a pas de "new[]". Ce qui veut dire qu'il y a des variables dont le contenu n'est pas initialisé, donc valeur aléatoire, et je me demande même si il n'y aurait pas des problèmes d'allocation mémoire si tu réitère trop. En effet, si tu déclare *variable sans faire d'allocation...
bon courage!
Ok, merci beaucoup, je voi un peu mieu d'ou peu provenir l'erreur.
Et en effet, il m'arrive de temps en temps d'avoir des violation d'acces.
Mais normalement, on peut avoir un constructeur qui ne fait rien, car on peu initialiser un vecteur vide.
l'instruction push_back permet de le remplir au fur et à mesure sans avoir à déclarer sa taille. Mais il est possible que je n'ai pas très bien compris...
Et en effet, il m'arrive de temps en temps d'avoir des violation d'acces.
Mais normalement, on peut avoir un constructeur qui ne fait rien, car on peu initialiser un vecteur vide.
l'instruction push_back permet de le remplir au fur et à mesure sans avoir à déclarer sa taille. Mais il est possible que je n'ai pas très bien compris...
j'ai trouver la solution : il faut rajouter des '&' :
MATRIX2& operator*(MATRIX2& A,MATRIX2& B)
{
MATRIX2 *tmp;
tmp=new MATRIX2 (0);
double a;
for (int i=0;i<A.n;i++)
{
a=A.M[i]*B.M[i];
tmp->M.push_back(a);
}
return *tmp;
}
par contre si qqun pouvais m'expliquer le pourquoi du comment...
MATRIX2& operator*(MATRIX2& A,MATRIX2& B)
{
MATRIX2 *tmp;
tmp=new MATRIX2 (0);
double a;
for (int i=0;i<A.n;i++)
{
a=A.M[i]*B.M[i];
tmp->M.push_back(a);
}
return *tmp;
}
par contre si qqun pouvais m'expliquer le pourquoi du comment...
BigSeb
Messages postés
614
Date d'inscription
vendredi 16 avril 2004
Statut
Contributeur
Dernière intervention
22 juillet 2005
12
22 avril 2004 à 15:24
22 avril 2004 à 15:24
L'utilisation du & en c++ est utilisé pour faire dezs passage par reference. Voila le pourquoi du comment.
-°-_-°-_-°-_-°-_-°-_-°-
On the road again !!!!!!!
-°-_-°-_-°-_-°-_-°-_-°-
On the road again !!!!!!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Char Snipeur
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 328
26 avril 2004 à 09:10
26 avril 2004 à 09:10
En effet, ça je le sais, mais je comprend pas bien la différence avec '*' !
MATRIX* A, et MATRIX& A : deux passage par référence, et pourtant 2 opérateur unaire différent !
Salutation !
Char Snipeur
MATRIX* A, et MATRIX& A : deux passage par référence, et pourtant 2 opérateur unaire différent !
Salutation !
Char Snipeur
BigSeb
Messages postés
614
Date d'inscription
vendredi 16 avril 2004
Statut
Contributeur
Dernière intervention
22 juillet 2005
12
26 avril 2004 à 09:21
26 avril 2004 à 09:21
* passage par adresse
& passage par reference
-°-_-°-_-°-_-°-_-°-_-°-
On the road again !!!!!!!
& passage par reference
-°-_-°-_-°-_-°-_-°-_-°-
On the road again !!!!!!!