C/C++中static关键词总结


隐藏、持久、默认0、
static的根本特征是隐藏。
由于static修饰的变量全部处于静态数据区,所有会被初始化为0。

修饰全局变量/函数

  • 将变量或函数隐藏在.o文件中,使其在链接时不被其他.o所使用。
    这是在.o文件之间进行隐藏。

修饰局部变量

  • 使得变量具有全局生命周期,局部变量保存在静态数据区。
    可以理解为这是在函数之间进行变量隐藏,一个全局变量,加了static,写在函数内,就只有此函数可以访问这个全局变量。

C++面向对象

对于C++面向对象的每一个特性,我们都应该想到类与对象的关系,父与子的关系。

修饰成员变量

static修饰的成员变量必须在外部被初始化,尤其注意.h文件一般仅保存定义而不保存声明,也就是不能保存数据实体,因此应当将static成员变量的初始化代码放置在.c/.cpp中。

初始化在类体外进行,而前面不加static,以免与一般静态变量或对象相混淆,不加该成员的访问权限控制符private、public,使用作用域运算符来标明它所属类;

静态数据成员初始化的格式:
<数据类型><类名>::<静态数据成员名>=<值>

类与对象中static的关系

共用

父子中static的关系

可覆盖

修饰成员函数

没有this指针,不可访问非static的成员变量

类与对象中static的关系

共用

父子中static的关系

可覆盖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值