c++ 浙大翁恺老师面向对象程序设计听课笔记收录(二十九)静态成员

静态成员:
静态成员变量对类的所有成员函数都是全局的,但是在这个类的所有不同对象之间是保持一致的。
在源文件作用域内,只初始化一次

static成员变量,不依赖于某一个类存在的东西,是class-wide

hidden可以靠 private protect实现, persisitent靠statia:全局数据区


提供一个地方为这些变量,并在 .cpp文件里初始化它们
但是在 .cpp 文件里面并没有static

静态本地变量实际上在全局存储区里面,你在某个类里面有个静态变量,它也在全局存储区里面,类里面的变量是声明,在哪里并不知道,由链接器去找,所以如果你类里面声明了一个静态的成员变量,你要在某个源文件那里写上: int A::i; 可以有默认值,因为相当于全局变量,相当于全局变量的定义。

内联函数的身体都放在 头文件 .h 里面
现在如果你有一个静态成员变量,一定要有一个对应的 .cpp

int A::i = 20; 不能加 static,static说明i只能被当前文件所访问,与静态数据成员可以被外部成员访问所违背,如a.i或A::i两种外部访问方式
静态成员变量只能被它自己定义的地方被初始化,但不能在类的构造函数那里被初始化。
仍然可以使用 this 指针来访问到静态成员变量。

a.i 或者 A::i 两种外部访问方法
如果同时私有,那么外部的两种方法都无效了。

也可以是静态成员函数,给我们提供了一个手段,在你建立任何对象之前啊,你就可以调用静态成员数据或者函数(静态成员变量、静态成员函数的意义)

成员函数之所以可以访问成员变量,是因为有隐含的 this 的前提,这个理解了,就可以明白一些显然的语法。

笔记转自:

网易云课程笔记

https://study.163.com/note/noteIndex.htm?id=271005&type=0#/noteIndex?resType=0&resId=381170&sortType=0

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值