我正在用 QT 编写一个 c++ 应用程序,重点是速度优化。我想要一些对不同线程具有只读访问权限的全局对象。在打开线程之前,我必须初始化全局对象并用数据填充它们。
如何保护我的全局对象的设置功能,但仍然可以从主功能访问?
像现在这样的示例代码:
我的类.h
class MyObjectClass {
public:
void SetSome(const QList<QString> &value);
QList<QString> GetSome() const;
private:
QList<QString> m_myMember;
};
主文件
#include "global.h" // some like: extern MyObjectClass g_InihalizedInMain;
#include "anyThread.h"
int main(){
g_InitializedInMain.SetSome() // This Shut work
MyThread thread;
thread.start();
//..
return 0;
}
任何线程.cpp:
#include "global.h"
void thread::run()
{
MyObjectClass newObject = g_InihalizedInMain; //This shut work
g_InitializedInMain.GetSome(); //This shut work
g_InitializedInMain.SetSome(); //This shut not work and give me an error during compile time
newObject.SetSome(); //This shut work
}
如果您有一些设计想法给我,我会很高兴,非常感谢!