Template d'un constructeur d'une classe et pointeur
Bonjour,
J'ai défini ma classe vertex de cette manière (je reprends uniquement le constructeur, le reste étant hors sujet) :
Code:
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:
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.