我的经验告诉我,给定一个对象:
class Object
{
private:
static int array[];
public:
Object(int id);
};
int Object::array[] = { 2937, 892 };
Object::Object(int id)
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
初始化array将在调用任何方法之前Object或在程序中的任何其他对象上调用任何方法,无论是否声明对象static.
基本上,我要问的是,有人不同意静态简单C类型(非对象),如char,short和int,以及long(没有构造函数由这些类型构成的结构)在可执行文件加载到内存中时,在main()之前被初始化或者调用任何其他构造函数?