Bonjour,
J'ai défini ma classe vertex de cette manière (je reprends uniquement le constructeur, le reste étant hors sujet) :
Je souhaiterais ensuite pouvoir écrire :
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; }
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 vertex *v = new vertex<3>(coordinates);
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.
Partager