C++中静态成员函数和静态成员变量
1、静态成员变量 语法:static 成员变量
性质:共享(属于全部成员,一改全改)
用法:1、通过对象访问
2、通过类名访问
注意:1、静态成员变量在编译阶段就分配了内存。必须在类内声明,类外初始化
2、静态成员也有访问权限限制。类外只可访问public,子类只可以访问public和protected。
#include
using namespace std;
class Person
{
public:
static int m_A;
//类内声明:成员变量前+static
};
int Person::m_A = 10;
//编译阶段分配内存,因此类外初始化,需添加作用域
void test01()
{
//访问方式一:通过对象访问
Person p1;
cout << p1.m_A << endl;
//结果10 //访问方式二:通过类名访问
cout << Person::m_A << endl;
//结果10
//共享属性
Person p2;
cout << p2.m_A << endl;
//结果10
//一改全改
p2.m_A = 20;
cout << p1.m_A << endl;
//结果20
cout << p2.m_A << endl;
//结果20
}
//静态成员变量有访问权限
class Person1
{
public:
static int m_A;
private:
static int m_B;
};
int Person1::m_A = 10;
int Person1::m_B = 20;
void test02()
{
cout << Person1::m_A << endl;
//cout << Person1::m_B << endl;
//err:不可访问
}
int main()
{
test01();
test02();
system("pause");
return 0;
}
2、静态成员函数 【C++中静态成员函数和静态成员变量】语法:static成员函数
性质:共享
用法:1、通过对象访问
2、通过类名访问
注意:1、函数在类外只涉及调用,因此没有静态成员变量必须在类别初始化的问题,只需在类内定义即可
2、静态函数内如果包含成员变量,那该成员变量只能是静态的!
文章图片
文章图片
文章图片
推荐阅读
- 热闹中的孤独
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 异地恋中,逐渐适应一个人到底意味着什么()
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- “成长”读书社群招募
- 2020-04-07vue中Axios的封装和API接口的管理