Je rencontre des problèmes lors de l'accès à une propriété statique dans une classe. Je reçois l'erreur suivante:C++, propriété statique
shape.obj : error LNK2001: unresolved external symbol "public: static class TCollection<class Shape *> Shape::shapes"
La définition de la classe est:
class Shape {
public:
static Collection<Shape*> shapes;
static void get_all_instances(Collection<Shape*> &list);
};
et la mise en œuvre de la méthode statique étant:
void Shape::get_all_instances(Collection<Shape*> &list) {
list = Shape::shapes;
}
Il semble que le La propriété shapes
n'est pas en cours d'initialisation.
Wow merci pour le retour rapide. J'ai pris des heures pour faire de la recherche et environ 1 minute sur StackOverflow. – Louis
Je pense que vous regretterez beaucoup d'avoir à la fois une variable statique et une variable publique. As-tu réellement besoin de cela? Pourquoi ne pas simplement passer une const Collection & objet partout où vous avez besoin d'une liste de toutes les formes? Cela encouragera les autres développeurs à appeler Shape :: get_all_instances() dès qu'ils auront besoin de la liste, au lieu de la passer explicitement. Cela conduira à toutes sortes de problèmes, lorsque vous voulez tester ou que vous voulez travailler sur des sous-formes de formes. –
Ouais c'est public en ce moment à cause d'un débogage furieux. – Louis