static ,const
函数原型作用域:作用范围为函数形参表范围,起始于“(”,结束于“)”,这是声明
定义是属于局部作用域,所以声明的时候不写形参名字也可以
类作用域:包含类体及在类外实现的本类成员函数的函数体
静态生存期:其生存期与程序整个运行期是一致的
动态生存期:开始于程序执行到声明处,结束于命名该标识符的作用域结束处
static:局部变量在函数内定义,它的生存期为整个源程序,但是其作用域仍与自动变量相同,只能在定义该变量的函数内使用该变量,退出该函数后,尽管该变量还继续存在,但不能使用它,且仅初始化一次,也是唯一的一次初始化
加static后,就会对其它源文件隐藏,初始值为0
静态函数成员主要用于处理该类的静态数据
----------------------------------------------------------------
静态函数和非静态成员函数的区别:进入到函数体后,这个函数体能不能知道是哪个对象调用的它,对于非静态的属于对象的函数,它能知道是通过哪个对象调用的它,静态的则不能
静态数据成员:不属于任何一个对象,需要定义静态的函数成员来处理静态数据
静态成员函数即使用对象名点函数名,也不能知道是谁调用了它,所以静态成员函数一般不用来处理对象的数据,一般用来处理属于整个类的静态数据的
静态的成员函数既可以通过类名,作用域分辨符去调用,也可以通过对象名点函数名的方式去调用
----------------------------------------------------------------
友元函数是在类声明中由关键字friend修饰说明的非本类成员函数
在它函数体中能通过对象名访问private和protected成员
友元函数不是类的成员,虽然有权限访问对象中的私有数据,但得告诉它访问哪个对象,所以需要友元函数来处理对象中的私有数据,就要将对象作为参数传给这个函数
-----------------------------------------------------------------
常类型:
常对象:必须被初始化,不能被更新 格式:const 类名 对象名
常成员:用const修饰的类成员:常数据成员和常函数成员
常引用:被引用的对象不能被更新,只读引用 格式:const 类型说明符 &引用名
常成员函数:专门用来处理常对象的,绝不改变对象的状态
const也是区分重载函数的的选择之一
常对象只能通过常成员函数处理
对象的成员,类的成员都可以定义为常函数,一旦一个成员定义为常成员,就只能在初始化时给它初始值,不可能也不允许再给它赋值了。
每个成员函数都有可能改变对象的状态,用常函数处理。
不打算改变对象状态的函数,主动都说明为常函数
常成员不可以放在构造函数的函数体中赋值,必须在初始化列表中初始化,以后就不许再赋值了
-----------------------------------------------------------------------
只要在标识符def定义过,就说明我们竖起了标签,按照这个记号规定的定义,我们应该让编译器去编译相应程序段
引自:https://www.cnblogs.com/songdanzju/p/7422380.html
static ,const的更多相关文章
- 【转】C++ 类中的static,const,及引用类型的初始化
文档主要来自:http://blog.csdn.net/yjkwf/article/details/6067267 1. static类型 用static可以为类类型的所有对象所共有,像是全局对象,但 ...
- php类中的$this,static,const,self这几个关键字使用方法
本篇文章主要分享一下关于php类中的$this,static,final,const,self这几个关键字使用方法 $this $this表示当前实例,在类的内部方法访问未声明为const及stati ...
- C语言中auto,register,static,const,volatile的区别
1)auto 这个关键字用于声明变量的生存期为自动,即将不在任何类.结构.枚举.联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量.这个关键字不怎么多写,因为所有的变量默认就是aut ...
- c++中的static,const,const static以及它们的初始化
const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间. static表示的是静态的.类的静态成员函数.静态成员变量是和类相关的,而不是和类的 ...
- static, const
static 静态的,类的静态成员函数,静态成员变量是和类相关的,但不和具体对象相关.即使没有具体对象,也能调用类的静态成员函数和成员变量.一般类的静态函数就是一个全局函数,只是作用域在包含它的文件中 ...
- C语言之头文件,static与const关键字
[前言] 最近几个月在做一个C语言代码重构的项目,过程中也让我对之前在书本上学习到的东西有些补充和巩固,在本博中总结记录下,梳理下零碎的知识点和经验也加深印象,书写是为了更好地思考.平时也都是用印象笔 ...
- const,static,volatile关键字的作用
const关键字: 1.欲阻止一个变量被改变,可使用const,在定义该const变量时,需先初始化,以后就没有机会改变他了: 2.对指针而言,可以指定指针本身为const,也可以指定指针所指的数据为 ...
- 【C语言 C++】简单keywordRegister,Const,Static,Volatile,typedef,Define的理解
Register 用register声明的变量称着寄存器变量,在可能的情况下会直接存放在机器的寄存器 中.但对32位编译器不起作用.当global optimizations(全局优化)开的时候,它会 ...
- const,volatile,static,typdef,几个关键字辨析和理解
1.const类型修饰符 const它限定一个变量初始化后就不允许被改变的修饰符.使用const在一定程度上可以提高程序的安全性和可靠性.它即有预编译命令的优点也有预编译没有的优点.const修饰的变 ...
随机推荐
- Javascript中的this之我见
来源:http://www.blogjava.net/baoyaer/articles/105864.html 在面向对象编程语言中,对于this关键字我们是非常熟悉的.比如C++.C#和Java等都 ...
- pandas库的数据类型运算
pandas库的数据类型运算 算数运算法则 根据行列索引,补齐运算(不同索引不运算,行列索引相同才运算),默认产生浮点数 补齐时默认填充NaN空值 二维和一维,一维和0维之间采用广播运算(低维元素与每 ...
- 学JS的心路历程 - JS的Class
没错,你没有看错,虽然前面说JS是原型继承,但在ES6以后新增了class关键字!!! 不过底层实作仍然是以原型继承方式进行,所以基本上算是一个语法糖. 今天我们就来看一下如何使用吧! class 首 ...
- 关于ros将opencv版本固定“写死”的一些想法
今天主要工作是将ros和zed结合起来,但是发现自己安装了opencv3.1,ros indigo安装的是opencv2.4.8,这就麻烦了,zed支持的是opencv3.1.一开始使用slam2时, ...
- 关于H5唤醒APP的功能实现(千辛万苦啊!)
首先,我是个后端,写java的,甚至不是搞移动端的,所以js这方面有点底子但不专业,对于出现的错误也请见谅,原来项目要求有个H5页面打开APP的功能就强行要做,没办法就想办法搞一下,网上的教程基本都是 ...
- clone()与image和 cloneTo()
Mat image = imread("1.png" ) ; Mat image1 ; Mat image1(image) ;//仅是创建了Mat的头部分,image1与image ...
- ubuntu18换国内源
编辑/etc/apt/sources.list文件, 在文件最前面添加以下条目(操作前请做好相应备份): ##中科大源 deb https://mirrors.ustc.edu.cn/ubuntu/ ...
- TF-IDF原理及使用
1.TF-IDF(Term Frequency-Inverse Document Frequency, 词频-逆文件频率).(逆文档词频) 2.自我理解: 公式TF = $$\frac{语料库中关键词 ...
- pandas.DataFrame.to_excel
1. file_name = 'aa.xlsx' df.to_excel(file_name) #这种file_name不能重复,已经生成过的就会报错 writer = pd.ExcelWriter( ...
- metasploit framework(二):记一次入侵
msfconsole use 其中一个 exploit前台执行注入 后台执行shell 加-j 通过sessions查看后台执行的shell,可以看到这个会话的id号为2 进入会话,sessions ...