C++09 static

静态对象

  • List item

deprecated 过时
persistent storage 持久存储
shared by all instances 在所有对象之间共享
only access static member variable 只能访问静态函数/对象

  1. static 的本地变量就是全局变量,并且只能在那个函数内部被访问。
  2. 在这里插入图片描述

如果函数里面有一个静态本地变量,那个本地变量实际上在全局。同样某个类里面有个static 成员变量,这个变量实际上在全局。如下图

在这里插入图片描述

在这里插入图片描述

上图的extern int i是个申明,不是定义,在这个.cpp里面没有这个i的位置, 这句话只是告诉compiler说某个地方有一个叫做i的东西, 不知道在哪里,link负责找出它。写在class里面的所有东西都是申明。写在这里的意思是说某个地方有个全局变量叫做i, 它是我的成员变量(只有在我这个class里面 能够访问它。)

所以写了一个static的成员变量, 你一定要在某个.cpp里面

所以如果这个类有静态成员变量的,那么这个类一定要有个对应的.cpp,里面写上int A::i 如下图

在这里插入图片描述

**如上图,static成员变量要多做一件事情, 找一个.cpp去放这个变量, 要不然只是申明了,没有定义它。 **

在这里插入图片描述

上图两种方式访问成员函数,static给我们provid了 一种手段, 没有成员变量之前就能访问成员函数。static函数只能访问static成员变量。原因是static成员函数没有this(没有this是因为我们需要这个类没有对象的时候就能够被调用。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值