今天遇到两个问题关于static variable,属于都了解,但是实际操作中还会犯错的知识不够扎实型。
1,template里面生命的static member会在其他的module(dll)里面有副本,所以要用dll import/export来避免
2,static variable作为全局变量其构造顺序无法保证,不要用
DataStruct msMember;
应该是DataStruct* msMember;
用的时候做:
if(msMember==NULL)
{
msMember = new DataStruct;
}
这种形式。
本文探讨了在使用静态变量时常见的两个问题:模板内的静态成员在不同模块中产生副本的问题及如何通过导入导出解决;静态变量作为全局变量时构造顺序不确定的问题,并提供了一种避免该问题的方法。
837





