Bonjour,

J'ai défini ma classe vertex de cette manière (je reprends uniquement le constructeur, le reste étant hors sujet) :

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
class vertex
{
public:
	/*
	[Constructeur]
	@param	dim				la dimension du point
			coordinates		les coordonnées du point
	*/
	template<size_t dim>
	vertex(double coordinates[dim])
	{
		this->dim = dim;
		this->coordinates = new double[dim];
		for(int i = 0; i < dim; ++i)
			this->coordinates[i] = coordinates[i];
	}
private:
	size_t dim;
        double * coordinates;
}
Je souhaiterais ensuite pouvoir écrire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
vertex *v = new vertex<3>(coordinates);
Malheureusement, cette ligne ne compile pas. Le compilateur et l'IntelliSense de Visual Studio me disent qu'aucun constructeur par défaut n'existe pour la classe vertex. J'en déduis que l'expression ci-dessus est invalide.

J'ai dû mal à voir où se situe l'erreur, pour autant que le constructeur soit lui-même valide.

En vous remerciant d'avance,

Nicolas.