(C++) 如何将 stl 列表声明为 extern?
Posted
技术标签:
【中文标题】(C++) 如何将 stl 列表声明为 extern?【英文标题】:(C++) How to declare a stl list as extern? 【发布时间】:2010-10-11 02:21:43 【问题描述】:我有:
std::list<Particle> particles;
std::list<Particle>::iterator particleit;
在我的 main.cpp 中。我需要在我的一个类文件中将这两个声明为 extern,但是当我尝试直接的方法时,我的编译器给了我一些关于缺少“>”的错误。我将如何解决这个问题?
【问题讨论】:
您确定包含<list>
和Particle
标头吗?
确切的代码和确切的错误信息肯定比英文描述更好。
“我需要将这两个都声明为 extern”——我对此表示怀疑!
【参考方案1】:
extern std::list<Particle> particles;
如果这不起作用,那么您还有其他错误。你是否包含了<list>
并且Particle
的定义在particles
被声明的地方可见?
【讨论】:
谢谢。它现在编译。但是我现在遇到了应用程序冻结的另一个问题。不过,我可能会解决这个问题。再次感谢。 这可能会导致初始化顺序失败......最佳实践是static
函数本地。
对,“冻结”可能来自于在初始化之前尝试访问全局对象。最佳做法是完全避免非本地对象,但如果你觉得你必须这样做,而不是使用设计良好的单人持有人......以上是关于(C++) 如何将 stl 列表声明为 extern?的主要内容,如果未能解决你的问题,请参考以下文章