Bonsoir,
j'utilise pour le 1ère fois les templates (car je m'inspire d'un code que j'ai trouvé)
je définis la classe Vector:
puis la classe Matrix
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 template< class T = double, // Type of the components const int n // Cardinality of the vector > class Vector { protected: T v[n]; public: Vector() { } etc...etc };
La classe Vector est parfaitement compilée
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
22 template< class T = double, // Type of the components const int n, // Rows const int m // Cols > class Matrix { protected: Vector<T,m> M[n]; public: Matrix() { } etc...etc };
mais la classe Matrix, pourtant similaire, me donne l'erreur :
error C2233: '<Unknown>' : arrays of objects containing zero-size arrays are illegal
à la ligne "Vector<T,m> M[n];"
Je tourne en rond : évidemment la taille n'est pas encore spécifiée, j'en suis qu'à la définition de la classe !
Comment m'en sortir ?
Merci d'avance
Philippe
Partager