错误集 QT 静态类型变量 undefined reference to错误-CSDN博客

92 阅读1分钟

当在头文件中声明静态成员属性的时候。如

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;
}