Jas*_*ker 19

有几件事:

  1. 通常,它们分配在不同的地方.局部变量在堆栈上分配,全局变量在其他地方分配.
  2. main中的局部变量仅在main中可见.另一方面,可以在任何地方访问全局变量.


Kon*_*zin 5

更多差异:

  1. 如果全局对象的构造函数/析构函数抛出异常,则调用函数terminate并且没有机会继续.对于本地对象,您可以捕获异常并执行某些操作(但是从析构函数中抛出它仍然很棘手).
  2. 没有明确规定建造/销毁全球物体的顺序.这意味着,通常对于两个全局对象,你不能说,首先构造哪一个.另一方面,本地对象在定义点处创建并在块结束时被破坏,以便与创建顺序相反.
  3. 范围......(已经提到过)

通常,在没有充分理由的情况下使用全局对象不是一个好习惯.使用全局变量通常会导致难以维护的代码.