I have a class that has a static member, which I want to use in the class constructor, but the code doesn\'t compile, and I\'m left with these errors:
fat
In your .cpp you need to add:
Collection<A*> A::collection;
The .h only declared that there would be a copy somewhere. You need to provide that copy in the .cpp.
You need to add
Collection<A*> A::collection;
to your a.cpp file.
alternatively, if you don't want to put that line in a cpp file, you can use a static method which returns a reference to a static instance... i.e.
class A
{
public:
static Collection<A*>& collection()
{
static Collection<A*> singleInstance;
return singleInstance;
}
};