当在头文件中声明静态成员属性的时候。如
class test
{
private:
static int s;
public:
void show();
}
此时若在cpp文件中直接使用静态成员属性会报错。
void test::show()
{
qDebug() << s;
}
undefined reference to 'test::s'
这是因为,头文件中的类仅仅是做了声明,而静态成员属性不仅仅需要声明,还需要进行初始化。
所以cpp文件中需要对静态成员属性进行初始化
int test::s = 1;
void test::show()
{
qDebug() << s;
}