gpt4 book ai didi

c++ - 共享首选项实现

转载 作者:行者123 更新时间:2023-11-27 22:57:27 25 4
gpt4 key购买 nike

我的目标是实现一个可以从任何地方访问的类,提供键值对;

class SharedResources
{
public:
static QMap <QString,QVariant> *preferences;
};

//initialization
SharedResources.preferences = new QMap<QString,QVariant>();

//store data
SharedResources.preferences->insert("some_data",some_data);

//access data
some_data = SharedResources.preferences->value("some_data");

但是这段代码无法编译。

第一个错误(每次使用都出现类似错误):

/file:line: error: expected unqualified-id before '.' token
SharedResources.preferences = new QMap<QString,QVariant>();
^

我肯定违反了一些 C++ 规则,但那些是什么?

更新:使用::错误是:

/file:line: error: undefined reference to `SharedResources::preferences'

最佳答案

在这种情况下最好使用静态而不是动态分配的内存(即没有 new)。

您的问题是您还必须声明和定义您的静态字段。在头文件中你只声明它,它应该在 cpp 文件的某处定义,如:

// this defines the variable, with default ctor (w/out parameters)
QMap<QString,QVariant> SharedResources::preferences;

当然,您必须将适当的目标文件链接到您的其他模块(除了使用带有声明的头文件之外)。

关于c++ - 共享首选项实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31292839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com