静态成员变量:
- 所有对象共享同一份数据
- 在编译阶段分配内存
- 类内声明,类外初始化
静态成员函数:
- 所有对象共享同一个函数
- 静态成员函数只能访问静态成员变量
#include <iostream>
using namespace std;
class Person
{
public:
int m_a; //非静态成员变量
static int m_age; //静态成员变量
static void func() //静态成员函数
{
// m_a=200; 报错 静态成员函数无法访问非静态成员变量,无法区分到底是哪个对象的变量
Person::m_age=200;
cout<<"static void func调用"<<endl;
}
};
void func1()
{
//1.通过对象访问
Person p;
p.func();
//2.通过类名访问
Person::func(); //所有对象共享同一个函数
}
int main() {
std::cout << "Hello, World!" << std::endl;
func1();
return 0;
}