入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

C++类中的静态成员

创建时间:2011-10-16 投稿人: 浏览次数:484
 
为什么静态成员变量要通过类外初始化赋值?
为什么又要在类里面声明这个静态成员?
 
当将类的某个数据成员声明为static时,该静态数据成员只能被定义一次,而且要被同类的所有对象共享。各个对象都拥有类中每一个普通数据成员的副本,但静态数据成员只有一个实例存在,与定义了多少类对象无关。
静态数据成员的用途之一是统计有多少个对象实际存在。
静态数据成员不能在类中初始化,实际上类定义只是在描述对象的蓝图,在其中指定初值是不允许的。也不能在够造函数中初始化该成员,因为静态数据成员为类的各个对象共享,那么每次创建一个类的对象则静态数据成员都要被重新初始化。
 

#include<iostream.h>

class widget { public:  widget()  {   count++;  }  ~widget()  {   --count;  }  static int num()  {   return count;  } private:  static int count; };

int widget::count=0;

int main() {  widget x,y;

 cout<<"The num is"<<widget::num()<<endl;  if(widget::num()>1)  {   widget x,y,z;   cout<<"the num is"<<widget::num()<<endl;  }  widget z;  cout<<"the num is"<<widget::num()<<endl;

 return 0; }

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像