C/C++——static用法完整总结

本文详细总结了C/C++中static关键字的用法,包括在类外部和类内部的应用,以及static类成员函数的特性。
摘要由CSDN通过智能技术生成
  • static在类外部使用
1、static修饰全局变量,限制全局变量的作用域,仅仅限于该文件。
2、static修饰局部变量,存储位置从堆栈段转移到了data段的rw段或bss段。生命周期变为和整个进程的生命周期一样了。

  • static在类内部使用
用来实现同一个类的所有对象的数据共享。

class A()
{
private:
      int num;
      static int shareVal;//该变量为static变量
};

在生成对象的时候类中的普通数据成员才开辟空间,而static成员变量在类声明的时候已经为该变量开辟了空间(在data段的rw段)。
static既属于类,也属于对象。

类内定义,类外初始化,int A::shareVal = 100;//初始化

调用:
类名::static变量
对象名.static变量

  • static类成员函数
为了管理静态成员,c++提供了静态成员函数,以对外提供接口。
如果static成员变量为private,则只能通过静态 成员函数访问该static变量。

调用:
类名::static函数
对象名.static函数

总结:
1、静态成员函数的意义,不在于信息共享,数据沟通,而在于管理静态数据成员,完成对静态数据成员的封装。
2、静态成员函数只能访问静态数据成员,不能访问非static数据成员和非static成员函数。原因:非静态成员函数,在调用时 this指针时被当作参数传进。而静态成员函数属于类,而不属于对象,没有 this 指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值