static的作用

本文通过三个具体实例详细解析了C++中static关键字的作用:包括作为函数内的局部变量时的记忆功能、作为类成员时确保整个类中仅存在一个实例的能力,以及如何实现类的所有对象间的数据共享。

作用一记忆功能:
int Fun()
{
 int stiCount = 0; // 非 static 变量
 stiCount++;
 return stiCount;
}

int main()
{
 for(int i = 0; i < 5; i++)
 {
  int j;
  j = Fun();
  cout<<j;
 }
}
输出结果为:11111

int Fun()
{
 static int stiCount = 0; //static 变量
 stiCount++;
 return stiCount;
}

int main()
{
 for(int i = 0; i < 5; i++)
 {
  int j;
  j = Fun();
  cout<<j<<endl;
 }
}
输出结果为:12345
static类型的紧初始化一次,存储在静态区,生命周期直至程序结束.
作用二仅存活一个实体:
class Static
{
 public:
 static int stiCount;
 Static()
 {
  stiCount++;
  cout<<stiCount;
 }
};
int Static::stiCount = 0;  //static静态成员变量必须在类外赋值
int main()
{
 Static st1;
 Static st2;
}
这里的stiCount变量不属于任何一个对象
静态成员变量没有this指针
它仅仅属于类本身,仅存活一个实体
这样可以节省存储空间

作用三对象指针数据共享:
class Static
{
 public:
 static int stiCount;
 Static()
 {
  stiCount++;
  cout<<stiCount;
 }
};
int Static::stiCount = 0;
int main()
{
 Static st1;
 Static st2;
 st1.stiCount = 6;
 cout<<st2.stiCount ;
}
这个功能是在功能二上建立的
类的所用对象可以对类的静态成员修改
对象之间可以进行数据共享

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值