c++ - 替代全局变量/常量

标签 c++

我一直在读到使用全局变量是糟糕的编程设计,但这是否意味着全局常量也很糟糕?

除了全局变量/常量之外还有哪些替代方法?声明多个源文件中所需常量的最佳方式是什么?

最佳答案

全局变量不好的主要原因是对共享状态的依赖,这使得程序的不同部分很容易通过以您不希望的方式操纵共享状态来对程序的其他部分造成意外干扰,使程序更容易出错,更难调试,更难维护。

另一方面,常量几乎没问题,除了它们会污染全局命名空间这一事实(这可能会通过更改编译单元中符号的含义在编译时导致意外后果)。如果您可以在特定的命名空间/范围内声明它们,那么您会没事的。

关于c++ - 替代全局变量/常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11488101/

相关文章:

C++ - 连续读取实时日志文件的最新行

c++ - 使用 SDL2 操作硬件纹理

c++ - 在编译时检查指定值是否在类型范围内

c++ - 什么是 "Read Access Violation... was nullptr"?

C++11:赋值运算符是否会阻止类型被 POD,从而被全局初始化?

c++ - 如何显示实时输出 SFML

C++ valgrid 错误 : Invalid read of size 8, 地址 0x8 未被堆栈、malloc 或(最近)释放?

c++ - 我可以为 BlackBerry 制作 C++ 程序吗(示例?)

c++ - C/C++ 函数指针的 UML 表示

c++ - 为什么 GLUT 加载图像倾斜,并像圆形缓冲区一样倒置在窗口上方?