Tengo una pequeña clase llamada Stuff en la que quiero guardar cosas. Estas cosas son una lista de tipo int. A lo largo de mi código en las clases que uso, quiero poder acceder a estas cosas dentro de la clase Material.¿Por qué no vinculará mi programa C++ cuando mi clase tiene miembros estáticos?
Main.cpp:
#include "Stuff.h"
int main()
{
Stuff::things.push_back(123);
return 0;
}
Stuff.h:
#include <list>
class Stuff
{
public:
static list<int> things;
};
pero me da algunos errores de generación con este código:
error LNK2001: símbolo externo sin resolver "público : static std std :: list < int, class std :: allocator <int> > Stuff :: things "(? Things @ Stuff @@ 2V? $ List @ HV? $ Allocator @ H @ std @@@ std @@ A) Main.obj CSandbox
error fatal LNK1120: 1 elementos externos no resueltos C : \ Stuff \ Projects \ CSandbox \ Debug \ CSandbox.exe CSandbox
Soy un chico C#, y estoy tratando de aprender C++ para un proyecto paralelo. Creo que no entiendo cómo C++ trata a los miembros estáticos. Así que por favor explica lo que tengo mal aquí.
¿Puedo sugerir políticamente que intente formatear la muestra del código? :-) – stiank81
Lo haría, si supiera cómo, aunque me doy cuenta de que Greg tuvo la amabilidad de hacerlo por mí –
iba a poner mis respuestas y ... 2 nuevas respuestas. Solo porque lo sabía. – Hai