gpt4 book ai didi

C++ 全局结构创建名称冲突

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:44 24 4
gpt4 key购买 nike

我编写了一个相当广泛的框架来驱动物理模拟中的角色。尽管每个人都警告我不要这样做,但我使用了一个全局公共(public)数据结构来存储信息,并将其称为 State。它也不在命名空间中。我通过声明 extern State state; 使其在全局范围内可访问。我这样做的原因是因为应用程序中到处都需要这个结构,我发现只包含我的 State.h 然后在任何地方写入 state.var 并在任何地方读取 state.var 非常方便。框架也在迅速变化,我也感到安慰,因为在引入新组件时不必关心传递数据、同步等。

不管怎么说,现在该死的太过分了。我想使用 Qt 的 GUI 类之一,它已经有自己的成员,称为 State 类型的状态。它们的状态至少在命名空间中,但这似乎并不重要,因为在类内部我已经在使用该命名空间。

我现在可以做什么?

最佳答案

你唯一的选择是撕掉你的全局并用正常的东西取而代之。这是非常痛苦的,但你真的没有任何其他选择。这就是为什么人们首先建议不要使用它。

简而言之,恭喜您学习了手头的类(class) - 不要使用全局变量。

关于C++ 全局结构创建名称冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13322530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com