微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

返回静态变量会在Visual Studio中引发错误

如何解决返回静态变量会在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 举报,一经查实,本站将立刻删除。