现在的位置: 首页 > 综合 > 正文

全局变量的处理

2013年02月26日 ⁄ 综合 ⁄ 共 409字 ⁄ 字号 评论关闭

全局变量在程序中很难避免,一般的处理办法主要有四种:

  1. extern最常用的做法, 还是来源于c语言的习惯,
  2. 第二种处理方案,一个类要使用全局变量可以作为构造函数的参数传入类中,举个例子:在做Trackball跟踪球的时候,类里面必须保持有窗口的尺寸,也就只是两个int类型的变量,完全可以作为TrackBall的构造参数传入:
  3. 单件类,设计模式中的Singleton模式,类内部定义一个static类型的全局变量,把这个对象的名字空间限制在了这个类中。需要使用对象,只需getInstance函数请求即可,使用很方便。CEGUI中对各种资源的管理就是使用了这种单件设计模式。
  4. 最后一种我感觉是最合适的。增加一个Global类,对所有的全局变量统一管理,将全局变量定义为static,并且私有化,提供静态成员的操控和访问方法。在<大规模C++程序设计>一书中也是这么建议的。

当然了,最根本的解决方法还是,尽可能的减少全局变量使用。

抱歉!评论已关闭.