c++ - 静态成员变量初始化时

标签 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 实例时?

谢谢!

最佳答案

它是实现定义的。

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

关于c++ - 静态成员变量初始化时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19614863/

相关文章:

c++ - 将非静态成员函数作为 std::function 传递

c++ - 它在 C++11 标准中的什么地方指定了在翻译过程中何时可以评估 constexpr 函数?

c++ - 什么会导致 HP-UX 和 LINUX for C++ 应用程序的返回值不同?

c++ - 在某些情况下使用 auto 作为返回类型和返回值 nullptr

C++ : Suggest names for mutating and non-mutating versions of a member function

C++ 为什么这个可以抛出?

java - Android Native Activity - 调用 Java 方法

c++ - 是否可以测试链接列表的销毁功能?

c++ - 我如何解决包含 65k 行代码的文件导致 [bcc32 fatal error ] F1008 内存不足错误?

java - Pass by value vs Pass by reference(两者在内存空间分配上的区别)