Module de gestion de matrice

Soyez le premier à donner votre avis sur cette source.

Vue 7 573 fois - Téléchargée 674 fois

Description

Mon module permet de gérer les matrices dans un projet. La classe Matrice est présent ci-dessous et j'aimerais connaitre votre sentiment par rapport a la facon dont c'est implemente et si la classe est assez exhaustive ou non.
Je suis debutant et ceci est mon tout premier proj C++. Merci de m'aider...

Source / Exemple :


#ifndef MATRICE_HPP
#define MATRICE_HPP

typedef double * Matrix;

class Matrice
{
    public:
        Matrice(int, int);
        Matrice(Matrice &);
        ~Matrice();
        
        void GetMatrice();
        void Fill();
        int  GetRows()      { return P;   }
        int  GetLines()     { return N;   }
        int  GetDimension() { return N*P; }
        
        friend Matrice operator +  (Matrice, Matrice);
        friend Matrice operator -  (Matrice, Matrice);
        friend Matrice operator *  (Matrice, Matrice);
        friend Matrice operator *  (double , Matrice);
        friend Matrice operator ^  (Matrice, int    );
        friend bool    operator == (Matrice, Matrice);
        
        void Display()  ;
        void Transpose();
        void Inverse()  ;
        void Zero()     ;
        void Identity() ;
        
    private:
        int N, P;
        Matrix XxMatrice;
};

#endif

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_djl
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
5 -
Matrice& operator = (const Matrice &);

dur à voir, c'est canonique, le compilo cherchait cette declaration pour l'operateur interne d'affectation

il te manque aussi le constructeur par defaut, et ca c'est tres important, a partir du moment ou tu redefini un constructeur, tu doit redefinir egalement celui par defaut (sans parametre)

ca peut etre aussi bien

Matrice();

que

Matrice( int 5, int 5, int = 0);
cs_shen
Messages postés
17
Date d'inscription
dimanche 29 décembre 2002
Statut
Membre
Dernière intervention
16 août 2004
-
c ok!
cs_djl
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
5 -
comment tu as declaré l'operateur = ?

met à jour le zip pour voir
cs_shen
Messages postés
17
Date d'inscription
dimanche 29 décembre 2002
Statut
Membre
Dernière intervention
16 août 2004
-
djl > j'ai rajoute l'operateur = comme tu m'avais dir mais j'ai un prob...quand j'ecrit par exemple pour deux matrices a et b :
a a+b, ou a a*b....
c'est cette erreur a la compilation :
no match for 'Matrice& = Matrice' operator.
par contre si j'ecrit : a = b;
c'est correct...
??? bizarre, j'ai pourtant bien les bons operateurs definis...
cs_djl
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
5 -
pense aussi à utiliser un type non signé ou un size_t pour les dimensions, c'est fait pour


class Matrice
{
public:
typedef std::size_t size_type;
...
private:
size_type N, P;
Matrix XxMatrice;
};

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.