我们来考虑一个C++类.在执行开始时,我想从XML文件中读取一组值,并将它们分配给该类的7个数据成员.这些值在整个执行期间不会改变,并且必须由所讨论的类的所有对象/实例共享.静态数据成员是实现此行为的最佳方式吗?(当然,我不考虑全局变量)
正如其他人所提到的,在这种情况下使用静态成员似乎是合适的.请记住,这不是万无一失的; 全局数据的一些问题适用于静态成员:
您无法控制静态成员的初始化顺序,因此您需要确保没有全局变量或其他静态参考这些对象.有关更多详细信息,请参阅此C++ FAQ问题以及有关避免此问题的一些提示.
如果您在多线程环境中访问它们,则需要确保在生成任何线程之前成员已完全初始化.