// H File class LayoutManager : public QObject { static int Access_Data(); static int data; };
// CPP static int data= 0; // Global scope int LayoutManager::Access_Data() { data= data+ 1; return data; }
Error: Error LNK2001 unresolved external symbol "public: static int LayoutManager::data" (?mm@LayoutManager@@2HA)
改为 int LayoutManager::data = 0 在C++中,错误已经消失,但在分配新值时 data
int LayoutManager::data = 0
data
void MyLayout::Update( void ) { LayoutManager::data = 1; // error here
int LayoutManager::data = 0;
这会告诉编译器您指的是 data 中的变量 LayoutManager 类,而不是任何类之外的常规全局变量。
LayoutManager
static 关键词。编译器已经从声明中知道变量是静态的。
static