c++ - 在 C++ 中初始化类的静态数组成员的更好方法(尽管首选 const)

标签 c++ static-initialization static-initializer static-array

我有一个指向作为类成员的函数的静态指针数组。

我需要初始化它,但事实证明这个数组有 64K 项长,所以用像 { x, y, z, ... } 这样的静态初始化器来初始化它是不切实际的它会使代码困惑。

我不得不通过代码来初始化它,有几个循环。

我想这样做的方法是在构造函数中初始化 static 数组并为其设置一个标志,因此只有类的第一个实例的构造才会触发此初始化。

从实例内部访问这个静态标志也不是线程安全的,但那是另一回事了。

是否有更清洁或更好的方法来执行此操作?

我也希望这个数组是 const,但恐怕唯一的方法是使用 static {} 初始化,对吗?

最佳答案

另一种选择是使用代码生成:编写一个单独的程序来生成用于定义静态数组的源代码。

关于c++ - 在 C++ 中初始化类的静态数组成员的更好方法(尽管首选 const),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8108321/

相关文章:

java - Java 中初始化器与构造器的使用

rust - 使用宏初始化大量非复制元素

c++ - 如果我在通知的条件变量上调用等待会发生什么

c++ - QStringListModel *作为信号的参数,给我错误 “…attempting to reference deleted function”吗?

c - 为什么在以下代码中将成员 y 设置为 0?

c++ - 间接递归,依赖静态变量

Java:什么是静态{}?

c++ - 结构体的重载运算符作为映射键

c++ - 尝试创建字符串映射并插入项目会导致出现无法理解的错误

c++ - 具有私有(private)构造函数和自身静态数组的类