我有一个类,它有一个静态常量数组,它必须在类之外初始化:
class foo{
static const int array[3];
};
const int foo::array[3] = { 1, 2, 3 };
但后来我在 foo.o 和 main.o 中得到了重复的符号 foo::array
foo.o 保存 foo 类,main.o 保存 main() 并使用 foo 的实例。
如何在 foo 的所有实例之间共享这个静态 const 数组?我的意思是,这就是静态成员的想法。
在相应的 .cpp 文件中初始化它,而不是在 .h 文件中。
当你#include
它是一个预处理器指令,基本上将文件逐字复制到#include
。因此,您可以通过将其包含在两个不同的编译单元中来对其进行两次初始化。
链接器看到 2 但不知道该使用哪一个。如果您仅在其中一个源文件中初始化它,则只有一个 .o 会包含它,并且您不会遇到问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)