> 文章列表 > 【C++学习】类和对象--对象特性(2)

【C++学习】类和对象--对象特性(2)

【C++学习】类和对象--对象特性(2)

静态成员

静态成员就是在成员变量和成员函数前加上关键字static,称为静态成员。

静态成员变量:

        所有对象共享同一份数据

        在编译阶段分配内存

        类内声明,类外初始化

静态成员函数:

        所有对象共享同一个函数

        静态成员函数只能访问静态成员变量

 类内声明,类外初始化

#include<iostream>
using namespace std;
class person
{//1.所有对象共享同一份数据//2.在编译阶段分配内存//3.类内声明,类外初始化
public:static int m_A;
};
void test()
{person p;cout << p.m_A << endl;
}
int main()
{test();system("pause");return 0;
}

会报错:

 需要在类外声明:

int person::m_A = 100;

静态成员变量     不属于某个对象上,所有对象都共享同一份文件

因此静态成员变量有两种访问方式

//1.通过对象进行访问
person p;
cout << p.m_A << endl;

(只有静态成员能使用   方式2  访问) 

//2.通过类名进行访问
cout<<person::m_A<<endl;

静态成员函数

    //1.所有对象共享同一个函数
    //2.静态成员函数只能访问静态成员变量

 访问方式

    //1.通过对象访问person p;p.func();//2.通过类名访问person::func();

对这里能通过类名访问的理解:

因为静态成员函数不属于某一个对象上面,大家共享同一个。无需创建对象就可以访问。