C++ 静态属性

  

1、静态属性

   在C++语言中,同一个类所定义的不同对象之间的属性都是独立的,互不 影响,

  但是,当我们需要在不同的对象之间共享某些属性时,我们就需要通过定义静态属性来完成这个任务,

  这样,当某个对象对静态属性进行了修改以后,其它对象调用该静态属性时就会使用到静态属性被修改后的结果。

 

2、静态属性的特性

  静态属性定义在类中,但需要在类外实现,即分配内存空间,因为,类只是一个类型,是不会分配内存空间

 所以,要让不同对象去共享静态成员,就需要在类外实现静态成员,这样,系统才会为静态成员分配内存空间,

 从而,让不同对象可以去访问它。

 

3、静态成员定义的语法格式

  static 类型关键字 属性名;

 

  语法格式分析:

   (1)static关键字开头,说明是静态。

   (2)类型关键,即C语言中的数据类型,如整形int,浮点形float等。

   (3)属性名字,即成员名字,按C语言变量的命名规则定义即可。

   (4)最后就是一个分号。

 

4、静态成员实现的语法格式

   类型关键字 类名::属性名 = 初值;

 

   语法格式分析:

   (1)类型关键,即C语言中的数据类型,如整形int,浮点形float等。

   (2)类名,静态成员所在类的名字。

   (3)两个冒号,格式要求,不能省略。

   (4)属性名。

   (5)等于号,以及初值。

   (6)最后就是一个分号。

 

5、 例子:

       class Human  //定义了人类

       {
           public:
             int head;
             int body;
             int leg;
             int hand;
             int eye;
             int mouse;
             int ear;
             int nose;

             char *name;

             static int Count;   //定义了静态属性,记录人数

             Human()  //构造函数

             {

                head = 0;      

             }  

       };

 

       int Human::Count = 0; //对静态属性Count分配内存空间并赋初值0;

       Human LS;   //定义了对象LS

       Human ZS;   //定义了对象ZS

      

       void main()

       {

         LS.Count = 1;  //LS对象调用了Count静态属性并赋值为1。 

         ZS.Count = 2; //ZS对象调用了Count静态属性并赋值为2。 

       }

 

     例子分析:

         最后,由于ZS对象调用了静态属性Count并赋值为2,

      所以,当其它的对象调用静态属性 Count 时,其里面的属性值就等于2,

      直到有其它对象,对Count中的值进行修改为止。

 

不要停留在理论学习上,尽快转到真实环境进行代码编写实践,请下载下方的训练环境。

>>>下载训练环境与使用说明(使用真实的开发环境,结合游戏闯关进行编程训练)