首页 > 代码库 > 静态成员函数——static

静态成员函数——static

"静态成员函数是类的成员函数,该函数不属于该类申请的任何一个对象,而是所有该类成员共同共有的一个函数。静态成员函数的作用是为了能处理静态数据成员。"这是网上某位大牛对其的解释,但是我个人觉得这种解释不太准确。什么也不说直接上个例子吧

#include "stdafx.h"

#include <iostream>

#include "Student.h"

using namespace std;

class s

{

public:

   s(){}

   static void switchmode(int imode)

   {

      cout<<"last mode "<<s::m_ilastmode<<endl;

      cout<<"new mode "<<imode<<endl;

      s::m_ilastmode=imode;

   }

protected:

   static int m_ilastmode;

};

int s::m_ilastmode=0;

class A

{

public:

   A(){}

   void print_mode(int imode)

   {

      s::switchmode(imode);

   }

};

int _tmain(int argc, _TCHAR* argv[])

{

   int n=0;

   cout<<"please putin lap count"<<endl;

   cin>>n;

   A a;

   for (int i=1;i<n;i++)

   {

      a.print_mode(i);

   }

   system("PAUSE");

   return 0;

}

运行后的结果

 please putin lap count

9

last mode 0

new mode 1

last mode 1

new mode 2

last mode 2

new mode 3

last mode 3

new mode 4

last mode 5

new mode 6

last mode 7

new mode 8

结论:

其实静态成员函数可以认为是用来处理静态成员变量的,静态成员变量的用法大家应该很熟悉。类的静态成员变量实际上只有一个,它不随着类的实例的创建/销毁而增加/减少。它不是类的真正成员,并不是类的一部分。

静态成员函数——static