在 c++11 中,类中的静态成员变量是否跨线程边界正常工作?DLL 边界呢?
这是课程的粗略部分,让我问:
class IndexedEvent
{
public:
//constructor that is used the very first time an
//instance of this class is constructed
IndexedEvent(Event* ev, int res):point(ev),resolution(res){calculateIndex();}
//constructor to be used every time after that
IndexedEvent(Event* ev):point(ev){calculateIndex();}
...some more member functions...
private:
...some more member functions...
static int resolution;
Event* point;
Index calcIndex;
}
如果我在程序执行的一开始就设置分辨率,其他线程是否能够创建正确设置此值的 IndexedEvent 的实例?导入的 dll 中的函数能否创建正确设置分辨率的实例?
如果这不起作用或者由于需要跳过的箍而不可行,是否可以通过为 IndexedEvent 创建工厂类而不是通过 operator new 创建此类的新实例来解决它,而是通过调用创建它们到工厂班?