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修饰的变 ...
随机推荐
- asp.net 如何判断输入的值 包括 汉字?
string input = " 里面是不是汉字 ";bool bl= System.Text.RegularExpressions.Regex.IsMatch(input, @& ...
- JQuery/JS插件 zTree树,点击当前节点展开,其他节点关闭
好像没找到现成的,就自己写了一个demo. 效果如下: 代码: <!DOCTYPE html> <html> <head> <meta http-equiv= ...
- Oracle登录后提示ORA-12154:TNS:无法解析指定的连接标识符
下午重装系统,安装Oracle,设置了首选项的Oracle主目录名和OCI库,但还是提示ORA-12154:TNS:无法解析指定的连接标识符 纠结了好久,发现刚装系统没设置Oacle数据库的系统环境变 ...
- CAP与Base理论
分布一致性的提出 在分布式系统中要解决的一个重要问题就是数据的复制.在我们的日常开发经验中,相信很多开发人员都遇到过这样的问题:假设客户端C1将系统中的一个值K由V1更新为V2,但客户端C2无法立即读 ...
- BOS物流项目第十二天
教学计划 1.角色管理 a. 添加角色功能 b. 角色分页查询 2.用户管理 a. 添加用户功能 b. 用户分页查询 3.修改Realm中授权方法(查询数据库) 4.使用ehcache缓存权限 ...
- 源码编译安装Python3及问题解决
https://chowyi.com/%E6%BA%90%E7%A0%81%E7%BC%96%E8%AF%91%E5%AE%89%E8%A3%85Python3%E5%8F%8A%E9%97%AE%E ...
- jquery val() text() html()的区别
value()主要用在表单元素上,如果其他的元素获取value是通过attract()的方法,text()是获取元素的纯文本,如果text(“content”)就会更改元素的文本内容:html()获取 ...
- JS-事件对象(鼠标键盘事件)
一 事件对象 1 需要获取键盘和鼠标的信息的时候,用到事件对象.(e) 例如:document.onclick = function(e){ var e = e || event;(做兼容) } ...
- java spring bean的什么周期
http://www.cnblogs.com/TIMHY/p/7794973.html
- 搭建asp渗透测试环境
win2k3下载地址 http://yun.baidu.com/share/link?shareid=77306757&uk=2852438886 win2003 Enterprise Edi ...