静态成员函数在类中的特点:
1、所有的对象共享一个函数
2、静态成员函数只能访问静态成员变量
但是在这里需要注意的是,静态成员函数具有访问权限,具体可以看一下代码进行理解
#include<iostream>
using namespace std;
// 静态成员函数
// 所有对象共享同一个函数
// 静态成员函数只能访问静态成员变量
class Person
{
public:
// 构造一个静态成员函数
static void func()
{
m_A=100; // 静态成员函数可以访问静态成员变量
// m_B=200; // 静态成员函数不可以访问非静态成员变量 这里的m_B是必须创建对象之后才会有,假设创建多个对象之后,无法区分是哪一个对象的m_B的属性
cout<<"static void func函数的调用"<<endl;
}
// 静态成员变量 有一个特点需要在类内声明,然后在类外进行初始化
static int m_A;
int m_B;
// 静态成员函数也是具有访问权限
private:
static void func1()
{
cout<<"static void func1函数调用"<<endl;
}
};
int Person::m_A=10;
void test01()
{
// 若要调用类中的函数有两种访问方式
// 1、通过对象访问
Person p1;
p1.func();
// 2、通过类名访问,因为没有创建对象就能进行访问,不属于某一个对象,都在共享同一个
Person::func();
// Person::func1(); 这里是私有的静态成员函数,所以类外不可以进行访问
}
int main(){
test01();
return 0;
}