- 静态成员变量:
- 所有对象都共享同一个变量
- 编译时就分配内存
- 有2种访问方式:通过对象访问,通过类名+::访问
- 静态成员变量也有访问权限
- 类内声明,内外初始化,也可以用静态成员函数初始化
- 静态成员函数:
- 所有对象都共用一个函数
- 有2种访问方式:对象、类名
- 也有访问权限
- 只能访问静态成员变量,不能访问非静态成员变量
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;
class person
{
public:
//静态成员变量
//1.所有对象都共享同一个变量
//2.编译时就分配内存
//3.有2种访问方式:通过对象访问,通过类名+::访问
//4.静态成员变量也有访问权限
//5.类内声明,内外初始化,也可以用静态成员函数初始化
//静态成员函数
//1.所有对象都共用一个函数
//2.有2种访问方式:对象、类名
//3.也有访问权限
//4.只能访问静态成员变量,不能访问非静态成员变量
static void func()
{
age = 100;
cout << "静态成员函数被调用" << endl;
}
static int age;
int a;
};
//必须类外初始化
int person::age = 100;
//通过类名访问
void test01()
{
cout << "person::age=" << person::age << endl;
person::func();
}
//通过对象访问
void test02()
{
person p1;
person p2;
p1.func();
p1.age=100;
cout << "p1中的age的值=" << p1.age << endl;
cout << "p2中的age的值=" << p2.age<<endl;
}
int main()
{
test02();
system("pause");
return EXIT_SUCCESS;
}