C++的static修饰符

一、static的概念

局部变量之前加上static局部变量就会变成局部静态变量
全局变量之前加上static全局变量就会变成全局静态变量

1.1 static修饰局部变量

  • 影响局部变量的存储位置——局部变量本身是存储在上的,修饰后存储在静态存储区,也就是data段的rw段(根据是否初始化,看看是否在bss段)。
  • 影响局部变量的生命周期——修饰后变得跟main()函数的生命周期是一样的(跟进程一样)
  • 局部变量的作用域变化:当局部静态变量离开作用域后,并不会被销毁,而是会继续留在内存中。但是不能再对它进行访问,除非【包含该局部静态变量的函数再次被调用】,但是局部静态变量的值是不会变的。

1.2 static修饰全局变量

  • 影响了全局变量的作用域——仅限于本文件

作用域可以看作是【从定义之处开始,结束于文件结尾

  • 存储在静态存储区,在程序运行期间一直存在

1.3 static在类内部的表现

【static数据成员是属于类的,所以可以说它属于所有的对象,静态成员是所有对象共享的成员,对于多个对象来说,静态成员只存储在一处,从而可以供所有对象共用】

  • static在类内部用来实现族类(子类也可以共享)对象间的数据共享

生成对象的时候,普通的数据成员才有空间
static成员在类刚声明的时候,就已经有了空间(data rw段)

通过实例可以看到,static成员是不占用sizeof的空间的——

static数据成员不占用空间

结果

二、static的初始化

static数据成员的初始化

必须放在类外,并且不能加static关键字

三、static数据成员属于类也属于对象,但终归属于类

  • static让对象之间的数据是相通的
  • 类本质上也是一个命名空间(小的命名空间)

标题解读:static数据成员属于类也属于对象,但终归属于类

属于意味着通过类名访问。
属于对象意味着通过对象访问。
终归属于也是意味着就算没有对象,也可以通过类名来访问static数据成员。

四、static修饰成员函数

  • static修饰成员函数的作用只有一个——用于管理static数据成员
  • 如果数据成员都是public的,那么可以通过对象直接访问,但是如果是private的,那么只能通过调用成员函数来访问。

static修饰的成员函数,既属于类,也属于对象,但终归属于类。

  • 这句话也意味着,static修饰的成员函数,没有对象,也可以直接通过类名来访问。但是普通的成员函数如果没有对象,是不能直接通过类名来访问的。

static成员函数想要调用非静态数据成员的时候,需要通过对象来引用】

五、static修饰的成员函数没有this指针

  • static修饰的成员函数因为属于类,所以没有this指针,从而不能访问非static数据成员以及成员函数
    static成员函数不能修饰非static成员函数

因为不知道是哪个对象的getTower()函数。


六、实现CCSprite类

示意图

代码实现

七、static const数据成员就地初始化

static const数据成员就地初始化
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,240评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,328评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,182评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,121评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,135评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,093评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,013评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,854评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,295评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,513评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,398评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,989评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,636评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,657评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352