在单例类的静态成员函数中,我直接使用了静态指针成员变量,而不是使用getInstance()。
我没有检查它并且它在运行时为空,因此空指针异常。
PC lint没有通知我这件事。通常它会通知我作为Prio 2警告:可能使用空指针。
为什么不通知我?
class stClass
{
int m_value;
static stClass *s_instance;
stClass(int v = 0)
{
m_value = v;
}
public:
int get_value()
{
return m_value;
}
void set_value(int v)
{
m_value = v;
}
static stClass *getInstance()
{
if (!s_instance)
s_instance = new stClass;
return s_instance;
}
static void intentFunction()
{
printf("%d", s_instance->getValue()); // Null pointer exception here...
}
};