全局变量的命名空间
Namespace for global variables
我希望所有应用程序都可以访问变量。这种做法不好吗?如果是,为什么?
namespace Global
{
SDL_Window* window;
SDL_Renderer* renderer;
UI* new_view;
}
另一个建议:
如何传递一个指针到全局变量类的构造函数,并保持它作为一个局部变量?
class A
{
SDL_Renderer* m_renderer;
A(SDL_Renderer* renderer);
}
A::A(SDL_Renderer* renderer)
{
m_renderer = renderer;
}
这种做法不好吗?
是的,使用全局变量是不好的做法,不管它们是否放在单独的命名空间中。
如果是,为什么?
它在系统模块之间引入了不必要的依赖关系。保持数据和行为本地化到类,负责做特定的事情。
在极少数情况下,单例是有意义的,但这些不应该是简单的全局变量,而是有一个静态成员(或自由)函数来访问它们。
是的,很糟糕。
好的部分:您解决了第一个不好的原因(使全局命名空间混乱),
但不要将自己的命名空间命名为"Global"。选择一些更独特的东西。
缺点:有更多的东西,比如创建不需要的依赖
(就像程序A部分不能工作,如果B部分不修改值)
相关文章:
- 命名空间内C++变量声明
- C++从 std::async 函数读取命名空间中的全局变量标志
- 为什么主可执行文件和 dlopen 加载的共享库共享命名空间静态变量的一个副本?
- 命名空间中的全局变量会导致"undefined reference to"
- 使用命名空间的全局变量
- C 标准:DO命名空间constexpr变量具有内部链接
- 命名空间外部变量的未定义参考/多重定义,C 结构问题
- 命名空间中的C++全局变量
- C++变量的重新定义,全局命名空间被污染,我不知道为什么
- 命名空间中的全局变量 - 线程中的值不同
- 命名空间全局变量丢失值 (C++)
- C++访问具有相同名称的变量/对象的命名空间中的全局变量/对象
- 大声限制对命名空间中定义的全局变量的访问
- 如果全局中存在相同的变量,如何访问匿名命名空间变量
- 命名空间中变量的未解析外部符号
- 命名空间中变量的默认/自定义值
- 命名空间中的常量全局变量
- 命名空间中变量的生命周期
- 如何在节俭中跨命名空间访问变量
- 重新定义命名空间的变量