首页 > 代码库 > 静态成员函数——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