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

时间:2011-12-27 15:42:06

标签: c++ header

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

1 个答案:

答案 0 :(得分:4)

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

<强>可是:

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

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

你永远不应该在C ++中使用全局变量。它们仅用于向后兼容C。

相关问题