静态数据成员的内存分配含义 IBM C知识中心指出,类成员列表中的静态数据成员的声明不是定义的定义,要求它在名称spope in nameSpace scope之外定义。这就提出了一个问题,即为什么这是必要的以及关于内存分配的示意图含义。
避免这种情况,则标题文件中的声明不是定义。取而代之的是,必须在类定义之外(通常在主翻译单元的源文件中)提供一个定义。这样可以确保在整个程序中仅定义一次静态对象,并遵守一个定义规则。在内存分配方面,静态数据成员被分配在一个称为静态数据段的内存的特殊段中。它们仅在程序启动期间初始化一次,并在整个程序的一生中保留其价值。这与非静态数据成员形成鲜明对比,非静态数据成员在对象被破坏时创建和破坏对象时分配在堆栈或堆中。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3