当静态成员变量的初始化发生时

时间:2013-10-27 05:11:58

标签: c++

我有一个代码,

// CFoo.h
class CFoo
{
public:
   CFoo();
   ~CFoo();
   static const std::string mStr;
};

// CFoo.cpp
const std::string mStr = "MyFoo";

CFoo::CFoo()
{
}

CFoo::~CFoo()
{
}

我的静态mStr何时初始化?当我的应用程序执行?或者在创建CFoo实例时?

谢谢!

1 个答案:

答案 0 :(得分:2)

这是实施定义。

唯一可以肯定的是,它会在您的应用程序首次进入定义它的翻译单元时初始化。