Returning or accessing a static variable inside a static function throws an error in Visual Studio:
// 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)
After changing to int LayoutManager::data = 0
in C++, the error is gone, but while assigning a new value to data
in another class, it throws a new error:
void MyLayout::Update( void )
{
LayoutManager::data = 1; // error here