C++辅导:全局对象的作用

C++辅导:全局对象的作用,第1张

C++辅导:全局对象的作用,第2张

尽管C++允许在类的外部声明全局对象,但是将全局对象声明为一些类的静态数据成员,在类块的protected:里声明静态数据成员,如果需要,可以用public:静态数据成员来提供get,用procteted:静态数据成员提供set。
  例如:考虑当前存在的Car对象的数目,既然让每一个Car对象都去计算Car对象的数目是很繁杂的,就不如把这个值存储为全局变量,也就是说,一个静态的Car类成员,既然额外的用户可能需要得到Car对象的数目。就应当用一个公有的静态成员函数去得到数目,但是既然不是让每一个能改变这个变量的值,就应当不是一个public:静态成员函数来设置Car对象的数目,下面的演示了静态数据成员和public:静态访问成员函数。
  #include
  using namespace std;
  class Car {
  public:
  Car();
  ~Car();
  Car(const Car& c);
  static int num();   protected:
  static int num_;   };
  Car::Car()
  {
  ++num_;
  }
  Car::~Car()
  {
  --num_;
  }
  int Car::num()
  {
  return num_;
  }
  int Car::num_ = 0;   (1) 访问num_成员函数
  (2) 声明静态数据成员
  (3) 定义静态数据成员
  注意:静态数据成员必须被定义在源文件内如果忘了定义静态数据成员,通常会产生一个C++错误,它的特定是链接时的错误消息。例如,静态成员Car::num_可能被定义在与类Car相关的文件里,例如Car.cpp.
  不象普通的数据成员,在类的第一个对象创建之前可以访问静态数据成员,例如,在第一个Car对象被创建之前可以去访问静态数据成员Car::num_,下面是main()程序的展示:
  int main()
  {
  cout

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C++辅导:全局对象的作用

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情