![]() |
1
4
出现问题的原因是您的头文件中有这一行:
因此,它最终出现在每个翻译单元中。相反,您需要将此存储移到一个仅编译一次的.cpp源文件中,或者移到自己的共享库中。那么只有一个实例
你也可以搬家
如果你有C++ 17或更高版本,你也可以尝试:
虽然语言不能保证(甚至提到)当您跨共享库边界使用这个新特性时会发生什么,但它确实在我的机器上工作。 |
![]() |
2
1
如果不要求ID是连续整数,则可以使用模板静态成员的地址作为ID。此方法的好处是不需要任何运行时初始化(使用 static initialization ):
你也可以做到
|
![]() |
3
1
如果您不关心顺序ID,请使用函数的地址作为标识符。
然后
|
![]() |
AstralHex · 矩阵乘法代码工作不正常 4 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 4 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 4 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 4 月前 |