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:

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
 
};
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
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
 
};
La classe Vector est parfaitement compilée
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