Bonjour à tous,
Je vais essayer de vous resumer brièvement mon problème.
J'ai créé une classe DATA qui est en fait une classe générique réunissant différentes autres classes (COMPLEX, REAL, RATIONAL, INTEGER, NATURAL).
J'ai ensuite définit une classe MATRIX qui est juste une implémentation de matrice d'éléments de type DATA.
Et je voudrais maitenant que MATRIX puisse être à son tour utilisée comme un "type" de DATA (pour par exemple pouvoir déclarer des matrices de matrice... je sais c'est un peu tiré par les cheveux mais c'est ce que je veux faire !)
et c'est là qu'est mon probleme... J'ai donc ma classe DATA définie dans un .h et un .cpp
et ma classe MATRIX définie dans un autre .h et .cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 class DATA { private: unsigned char Id; void *Data; public: DATA(void); DATA(const NATURAL& natural); DATA(const INTEGER& integer); DATA(const RATIONAL& rational); DATA(const REAL& real); DATA(const COMPLEX& complex); DATA(const MATRIX& matrix); ~DATA(void); void operator=(const DATA& data); bool operator==(const DATA& data) const; bool operator!=(const DATA& data) const; DATA operator+(const DATA& data) const; /* etc ... */ };
et je voudrais pouvoir utiliser à leur tour les méthodes de la classe MATRIX dans la classe DATA. Pour cela ne pouvant pas inclure "MATRIX.h" dans "DATA.h" (sinon on tourne en rond) je voulais déclarer les méthodes de MATRIX en tant que méthodes externes dans DATA.h ... mais le compilo refuse des trucs du type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #include "DATA.h" class MATRIX { private: unsigned int L; unsigned int C; DATA *Array; public: MATRIX(void); MATRIX(const DATA& data); MATRIX(unsigned int l, unsigned int c); MATRIX(unsigned int l, unsigned int c, DATA *array); ~MATRIX(void); void operator= (const MATRIX& m); bool operator== (const MATRIX& m) const; bool operator!= (const MATRIX& m) const; MATRIX operator+ (const MATRIX& m) const; /* etc ... */ };
dans "DATA.h" car à mon avis je dois mal m'y prendre... Quelqu'un saurait-il comment déclarer des méthodes de classes externes ??? Merci beaucoup pour votre aide !!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class MATRIX { public: extern MATRIX(void); extern void operator= (const MATRIX& m); /* etc ... */ };
Partager