一 静态成员函数概念:
作用:在声明对象之前访问私有静态数据成员;
静态成员函数与类相关联。
静态成员函数只能访问静态成员(静态成员变量和静态成员函数);
若要在静态成员函数中访问非静态数据成员要指定对象;
#include<iostream.h>
class A
{
public:
int a;
static int m;
public:
A(int x):a(x) //构造函数
{
m++; //在成员函数中访问静态数据成员,记录对象的个数
}
static int Get_m1() //静态成员函数访问静态数据成员
{
return m;
}
static int Get_m2(A z) //静态成员函数访问静态数据成员
{
return z.m;
}
int Get_m2()
{
return Get_m1();
}
};
int A::m=0; //初始化静态数据成员
int main()
{
A a1(1);
cout<<"a1:a="<<a1.a<<" m="<<a1.Get_m1()<<"通过对象访问静态成员函数"<<endl;
cout<<"a1:a="<<a1.a<<" m="<<A::Get_m2(a1)<<"通过类访问静态成员函数"<<endl;
cout<<"a1:a="<<a1.a<<" m="<<a1.Get_m2()<<"通过非静态成员函数访问静态成员函数"<<endl<<endl;
A a2(2);
cout<<"a2:a="<<a2.a<<" m="<<a2.Get_m1()<<"通过对象访问静态成员函数"<<endl;
cout<<"a2:a="<<a2.a<<" m="<<A::Get_m2(a2)<<"通过类访问静态成员函数"<<endl;
cout<<"a2:a="<<a2.a<<" m="<<a2.Get_m2()<<"通过非静态成员函数访问静态成员函数"<<endl;
return 0;
}
运行结果: