论静态成员在C++中的应用

论静态成员在C++中的应用
  
  [论文关键词]C++ 静态成员 共享
  [论文摘要]
C++类中的静态成员是类中各个对象所共享的成员,从数据共享的角度出发,介绍静态成员在类中实现数据共享的方法、作用。
  
  C++中类的成员分为静态数据成员和静态成员函数。它的作用类似于全局变量,可以实现C++多个对象之间的数据共享,但全局变量在程序中的可操作性难于控制,经常会带来不安全性,所以,考虑到程序的安全性,作者在本文讲述了静态成员在C++程序中的使用方法及作用。
  
  一、静态数据成员的应用
  
  C++中的静态数据成员是同一个类中所有对象所共享的成员,静态数据成员中存放的是所有对象的值,不是某一个对象的值,所以同一类中的每个对象的值都是一样,但它的值也是可以改变的。通过下面的实例可以对以上的内容加以证实、说明静态数据成员在C++类中的使用方法及作用。
  (一)静态数据成员的定义、初始化
  静态数据成员定义是以static关键字开始,后跟静态数据成员类型符、变量名;例:staticints;
  (二)静态数据成员的初始化
  静态数据成员的初始化是在类体外进行,初始化时不用加访问权限符,但是静态成数据成员是类的成员,所以在初始化时应指明该成员的类名;例如在类名为 Tstu的类中定义了一名为s整型静态数据成员,则初始化格式为:int Tstu::s =0;
  (三)静态数据成员的引用实例
  #include
  class Tstu//类的说明;
   {public://定义二个成员函数;
   Tstu(int a,int b); //定义构造函数,用来对数据成员赋初值;
   bb( );
   private:
  int x,y;//定义二个数据成员;
  static int s;};//定义一个静态的.数据成员,类Tstu定义结束;
  int Tstu::s=0; //静态数据成员的赋值;
  Tstu::Tstu(int a,int b)//构造函数的实现部分;
  { x=a;y=b;}
  void Tstu::bb( )//成员函数的实现部分;
  {s=s+x+y;cout<<”s=”<  void main( )//主函数;
  {Tstu t1(10,20),t2(5,3);
   ( );( );}
  对于以上的程序,类Tstu中的t1对象调用成员函数bb( )之后,静态数据成员s中的值是30,那么对象t2在调用前,对于对象t2,s中的值已是30,因为s中的值是每个对象所共享的,t2对象调用后,s中最后的值是38。
  我们再来看以下代码:
  #include
  class Ta{
  public:
  Ta(){n++; } //定义构造函数,当定义对象时n的值自动加1;
  ~Ta(){n--; } //定义析构函数,释放对象时n的值自动减1;
  int sum(){return n; }//成员函数sum( )用来返回静态数据成员n的值;
  private:
   static int n;};
  int Ta::n = 0;