如何解决返回静态变量会在Visual Studio中引发错误
在静态函数中返回或访问静态变量会在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)
在C ++中更改为int LayoutManager::data = 0
之后,该错误消失了,但是在另一个类中为data
分配一个新值时,它引发了一个新错误:
void MyLayout::Update( void )
{
LayoutManager::data = 1; // error here
解决方法
尝试一下
int LayoutManager::data = 0;
这告诉编译器,您的意思是data
类中的LayoutManager
变量,而不是任何类之外的常规全局变量。
重复static
关键字也是错误的。编译器已经从声明中知道变量是静态的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。