C++ 静态方法

  

1、静态方法

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

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

  这样,当(同一个类)所定义的(每一个对象)调用同一个静态方法时,它们就使用了相同的静态方法。

 

2、静态方法的特性

   (1)在静态方法中,不可以使用(非静态的属性)。

   (2)静态方法可以在(类内)或(类外)实现。

 

3、静态方法定义的语法格式

   static 类型关键字 方法名(参数类型 参数1,参数类型 参数2,...参数类型 参数n );

 

  语法格式分析:

    与普通方法定义的格式一样,只是在定义最开始的位置添加了static,用于说明是(静态)。

 

4、静态方法实现的语法格式

    类型关键字 类名::方法名(参数类型 参数1,参数类型 参数2,...参数类型 参数n )

    {

      代码;

    }

 

   语法格式分析:

   (1)与普通方法实现的语法格式是一样的。

 

 

5、静态方法调用的语法格式

   (1)类名::方法名(参数1,参数2, ...参数n ) ;

   (2)对象名.方法名(参数1,参数2, ...参数n ) ;

 

   语法格式分析:

   (1)可以通过类名后加两个冒号来调用静态方法。

   (2)可以通过对象名来调用静态方法。

 

 

6、 例子:

       class Human  //定义了人类

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

             char *name;

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

             static void Ct();    //定义了静态方法Ct

             Human()  //构造函数

             {

                head = 0;      

             }  

       };

 

       void Ct()

       {

          eye = eye + 1;     //错误,在静态方法中不可以调用非静态属性eye

          Count = Count + 1;   //正确,Count是静态属性

       }

 

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

       Human LS;        //定义了对象LS

      

       void main()

       {

         LS.Ct();    //LS对象调用了静态方法Ct。 

         Human::Ct();  //通过类名调用了静态方法Ct。

       }

 

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

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