静态成员就是在成员变量或成员函数前加static关键字,成为静态成员。
静态成员分为:
静态成员变量:
- 所有对象共享同一份数据。
- 在编译阶段分配内存。
- 类内声明,类外初始化。
静态成员函数:
- 所有对象共享同一个函数
- 静态成员函数只能访问静态成员变量。
静态成员变量代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
class Person {
public:
static int A;
private:
static int B;//静态变量也有访问权限
};
int Person::A = 1;
int Person::B = 2;//类内声明,类外初始化
int main() {
//静态成员变量有两种访问方式
//1.通过对象
Person p1;
p1.A = 1;
Person p2;
p2.A = 2;//多个对象控制同一变量p1.A=p2.A
//2.通过类名
Person::A = 3;
}
静态成员函数代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;
class Person {
public:
static void func() {
A = 2;//在静态成员函数中可以访问静态成员变量
B = 3;//在静态成员函数中不能访问非静态成员变量,错误
}
private:
static void func2() {
cout << "私有静态成员函数";
}
static int A;
int B;
};
int Person::A = 10;
int main() {
//访问静态成员函数也有两种方法
//1.通过对象
Person p1;
p1.func();
//2.通过类名
Person::func();
}