I am trying to implement the code in the Design Patterns book. I am getting the following error:
expected initializer before ‘*’ token
for this line:
static Singleton *Singleton::itsInstance = 0;
Here's the complete code. I am using g++ 4.2.1 to try and compile this.
class Singleton {
public:
static Singleton *instance();
protected:
Singleton();
private:
static Singleton *itsInstance;
}
static Singleton *Singleton::itsInstance = 0;
Singleton *Singleton::instance()
{
if (!itsInstance)
{
itsInstance = new Singleton;
}
return itsInstance;
}
Any ideas?
class Singleton {
};
^^^
This! and also,
static Singleton *Singleton::itsInstance = 0;
replaced with:
Singleton *Singleton::itsInstance = 0;
You need the static
only on the declaration not on the definition.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With