Besoin d'une critique sur ma source

Signaler
Messages postés
159
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
26 février 2009
-
Messages postés
159
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
26 février 2009
-
Voilà, j'ai actualisé une de mes sources, mais plus personne ne me
donne de commentaire alors que j'ai vraiement tout rechamboulé (en plus
j'avais eu une très mauvaise cote pour ma première version (à juste
titre)). Est-ce que je peux me permettre d'en refaire un nouveau post
oubien il faut que je me débrouille pour amener du monde ???



http://www.cppfrance.com/code.aspx?ID=34270
Duchon.

5 réponses

Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
istream& operator >> (istream& entree,const Matrice& a);

Si a est constante, comment peux tu lui rentrer une valeur dedans ?



"operator MatriceCarree();

operator VecteurLigne();

operator VecteurColonne();" <= je comprend pas tout ca, c'est quoi ?



"Matrice::~Matrice()

{

delete p;

}"

ICI, p est un tableau donc faut surtout pas supprimer avec delete, mais
delete[]. De plus, si p == NULL, ca fait quoi delete NULL ?

Je sais pas trop, soit delete plante, soit il dit rien :)



"class MatriceCarree : public Matrice

{

public:

MatriceCarree();

MatriceCarree(uint);

MatriceCarree(const MatriceCarree&);

MatriceCarree& operator = (const MatriceCarree&);

Matrice& operator = (const Matrice&);"



Pk tu redéfinies l'opérateur de copie de Matrice dans une classe dérivée ?



Bon voila rapidement quelques remarques :)

Bonne continuation.
Messages postés
159
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
26 février 2009

Merci pour ta première remarque, il va falloir que je revoie ca !



pour ce qui est de:

operator MatriceCarree();

operator VecteurLigne();

operator VecteurColonne();



C'est la surdéfinition des opérateurs de cast, pour pouvoir transformer une instance Matrice en MatriceCarree...



pour mon delete p, j'ai vu aussi le delete [] p, mais j'ai testé en
créant et dilitant des matrice en boule infinie, et ma RAM ne bouge
pas... j'en ai conclu que le pointeur retient comment il a été
initialisé (ici, avec un new double[nbrL*nbrC]). Je devrait peut etre
l'ajouter pour que tout le monde comprenne ce que je fais...





pour le fait que je retappe les opérateur de copie, c'est ce que
certains mon conseillé, car au moins je sais ce qui se passe. Sinon
c'est un "truc" par défaut "que-on-sait-pas-trp-comment-ca-marche"





Et merci pour tes conseils !

Bonne prog à toi aussi !

Duchon.
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Reprogrammer un constructeur de copie, je vois pas l'intéret, il a été
définie tel quel dans la classe de base, ya pas à le changer.

Pour le delete, je suis sur de moi :) c'est delete[] dans ton cas. Mais
je connais pas les effets directs d'utiliser delete sur un tableau,
mais c'est bien préciser dans les tutos de C++, qu'il faut faire
attention a ca.

Pour les opérateurs de cast, tu m'apprends un truc (javais jamais vu ca) :) merci ^^
Messages postés
159
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
26 février 2009

note: je me suis demandé pourquoi il compilait q-même le

istream& operator >> (istream& entree,const Matrice& a);

mais je ne fais que modifier ce qui est pointé par un élément de ma
classe et qui, pour le compilateur, ne fait pas partie de l'objet. Mais
ca induit évidemment l'utilisateur en erreur...



Merci de me l'avoir fait remarqué !




Duchon.
Messages postés
159
Date d'inscription
lundi 13 juin 2005
Statut
Membre
Dernière intervention
26 février 2009

Voilà, c'est corrigé !

(Luthor, je relisais ton premier commentaire, lorsque ma source était
encore toute pourrie... peut-être que tu l'utiliseras maintenant )

Duchon.