乐陵市职业中等专业学校

 简约管理制度,真情关爱入手,以人为本、以德立校、办人民满意的职业教育,育社会需要的时代英才。

     -----育人理念

                             
厚德 · 博学 · 精技 · 创新

学科资源

ACADEMIC RESOURCES

   
   
    
/
/
关于类的static数据成员和成员函数
来源: | 作者:pmoa3cb2c | 发布时间: 2009-12-03 | 1564 次浏览 | 分享到:
类static成员的两个问题:

  如果需要在一个类的各个对象间交互,即需要一个数据对象为整个类而非某个对象服务,这个时候常用类成员来解决问题。

  1、静态数据成员要在类外定义。

  2、类的静态成员函数是属于整个类而非类的对象,所以它没有this指针,这就导致了它仅能访问类的静态数据和静态成员函数,如果一定要访问成员变量,可以在参数中传入对象,通过对象可以访问类的私用和公有成员。

  例如:

  class CA

  {

  public:

  CA( int a1 );

  int a;

  // int sum();

  static int sum( CA *A);

  private:

  static int count; //= 30; //= 0;

  };

  int CA::count;

  CA::CA( int a1 )

  {

  a = a1;

  }

  int CA::sum( CA *A)  /////////static函数sum调用了类的非静态变量a

  {

  if(A->a > 30 )

  {

  return 0;

  }

  else

  {

  return 1;

  }

  }

  void main()

  {

  CA A( 1 );

  A.sum( &A );

  }