keyword static

本文详细解析了C++中类成员函数的调用规则,包括静态成员函数与非静态成员函数的区别、相互调用限制以及静态成员函数的初始化要求。同时,阐述了全局变量和函数的全局可见性,以及static关键字的三个关键作用:隐藏全局可见性、保持变量持久化和默认初始化为0。文章旨在帮助开发者深入理解C++中类和成员函数的高级特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 不能通过类名来调用类的非静态成员函数

2. 类的对象可以使用静态成员函数和非静态成员函数

3. 静态成员函数中不能引用非静态成员

  因为静态成员函数属于整个类, 在类的实例化对象之前就已经分配了空间, 而类的非静态成员必须在类实例化对象后才有内存空间

  

4. 类的非静态成员函数可以调用静态成员函数, 但反之不行

 

5. 类的静态成员函数必须先初始化再使用

6. 重要特点 

  隐藏: 当我们同时编译多个文件时, 所有未加 static 前缀的全局变量和函数都具有全局可见性

 

7. static 的第二个作用是保持变量的持久化

  存储在静态数据区的变量会在程序刚开始运行时就完成初始化, 也是唯一一次初始化. 共有两种变量存储在静态存储区, 全局变量和 static 变量, 只不过和全局变量比起来, static 可以控制变量的可见范围, 说到底, static 还是用来隐藏的

 

8. static 的第三个作用默认初始化为 0, 其实全局变量也具有这一个属性, 因为全局变量也存储在静态数据区

  在静态数据区, 内存中的所有字节默认都是 0x00, 某些时候, 这一特点可以减少程序员的工作量

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值