c++ - 使用 extern 关键字在头文件/c++ 中声明变量

标签 c++ header

在c++的头文件中声明变量的正确方法是什么?如果这不是一个好主意,那为什么呢?谢谢。

最佳答案

正确的方法是在头文件中使用 extern 关键字声明变量,然后您必须在一个(!)cpp 文件中声明它而不使用 extern 关键字。

但是:

头文件中的变量是全局变量。这些有很多问题。这里有一些:

  • 您不知道它们的初始化顺序。当一个是一个类并且它们的构造函数访问另一个全局变量时,可能这个另一个全局变量没有被初始化
  • 全局变量浪费你的命名空间
  • 当您使用全局变量时,您几乎肯定不会使用众所周知且经过验证的编程概念(例如模块化)。此外,您的函数会有许多副作用,这会使您的代码难以理解。几周后,您将不再知道哪些函数会更改哪些变量,等等。如果您坚持这个概念并且不使用全局变量,您的代码将更具可读性和可理解性。

你不应该在 C++ 中使用全局变量。它们只是为了与 C 向后兼容。

关于c++ - 使用 extern 关键字在头文件/c++ 中声明变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8646421/

相关文章:

c++ - 如何编写二维数组 C++ 函数参数(例如,对于 int[x][y])?

javascript - 传递文件以保存到 php

c++ - T v{} 初始化

python - 错误 : variable has incomplete type 'void'

c++ - 在 C# 的 WPF 应用程序中单击按钮时如何调用 C++ 代码?

android:headerDividersEnabled 不工作

javascript - 在 Node.js 中,我如何从其他文件中获取 "include"函数?

c# - 强制文件下载头

objective-c - #import 不能防止循环调用?

c++ - 为什么不需要导出模板类?