Re: what's wrong with the following singleton class???
* ying.gary.zhang@gmail.com:
// T.h:
class T
{
public:
static T* instance();
private:
T() {}
~T() {}
static T* smInstance;
};
// T.cpp:
T* T::instance()
{
if (smInstance == NULL)
smInstance = new T();
return smInstance;
}
when I try to compile the above code, there is linker error:
../T.cpp:3: undefined reference to `T::smInstance`
I am using gcc 3.4.6 under gentoo linux, thanks
You have declared but not defined 'smInstance'.
It should be defined in your [T.cpp] file.
But instead, just do
class T
{
private:
T() {}
T( T const& );
~T() {}
public:
static T& instance()
{
T theInstance;
return theInstance;
}
};
--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?