problème de redéfinition de classe
Bonjour à tous!
Je débute en POO et je ne comprend pas vraiment ce qui cloche dans mon programme. Le but est de créer une classe Matrice et de définir des opérations dessus. Problème, mon compilateur me renvoie ceci:
matrice.cc:6:7: erreur: redefinition of ‘class Matrice’
matrice.h:4:7: erreur: previous definition of ‘class Matrice’
j'ai cru comprendre que l'inclusion multiple était protégée grâce aux directives de préprocesseur, mais même avec ça ne marche pas...
Je suppose que le problème vient des constructeurs, mais je ne vois pas où. Si vous avez des suggestions...
Voici mes fichiers:
fichier 'matrice.h'
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
#ifndef MATRICE_1_H
#define MATRICE_1_H
class Matrice
{
public:
Matrice(double a[3], double b[3], double c[3]);
Matrice(double a[3]);
void affichermatrice() const;
void affichervecteur() const;
private:
double m_matrice[3][3];
double m_vecteur[1][3];
};
#endif |
fichier 'matrice.cc'
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
#include<iostream>
#include"matrice.h"
using namespace std;
class Matrice //Matrice et vecteur et opérations sur les matrices
{
public:
//Méthode initialiser matrice/Constructeur
Matrice::Matrice(double a[3], double b[3], double c[3]) //constructeur matrice
{
for(int j=0;j<3;j++)
{
m_matrice[0][j]=a[j];
m_matrice[1][j]=b[j];
m_matrice[2][j]=c[j];
}
for(int k=0; k<3;k++)
{
m_vecteur[0][k]=0;
}
}
Matrice::Matrice(double a[3]) //constructeur vecteur
{
for(int j=0;j<3;j++)
{ m_vecteur[0][j]=a[j]; }
for(int i=0;i<3;i++)
{
for(int k=0; k<3;k++)
{
m_matrice[i][k]=0;
}
}
}
//Méthode afficher matrice
void Matrice::affichermatrice()
{
for(int j=0;j<3;j++)
{
cout << m_matrice[0][j] << " " << m_matrice[1][j] << " " << m_matrice[2][j] << endl;
}
}
//Méthode afficher vecteur
void Matrice::affichervecteur()
{
cout << m_vecteur[0][0] << " " << m_vecteur[0][1] << " " << m_vecteur[0][2] << endl;
}
//Méthode exp(matrice)
//Méthode produit matriciel
private:
double m_matrice[3][3];
double m_vecteur[1][3];
}; |
Merci de votre réponse!