本文主要是介绍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
这篇关于c++ 浙大翁恺老师面向对象程序设计听课笔记收录(二十九)静态成员的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!