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修饰的变 ...
随机推荐
- 1.网站js文件获取
++++++++++++++++++++++ pls,input your domain like: http://111.com #coding:utf8 #encoding=utf8 import ...
- thymeleaf 的标准表达式
- python列表中,多次追加元素
在列表中追加元素,可以使用append(),列表相加也可以用extend()函数,多次追加元素可以用“+”实现 l=[1,2,3,4,5] x=6 y=7 z=8 l=l+[x]+[y]+[z] pr ...
- js jq 实现鼠标经过div背景以进度条方式 变宽,鼠标离开变小,同时文字颜色和原来不一样
<!DOCTYPE html> <html> <head> <title></title> <script typet="t ...
- linux基本之一
1.目录棉集 / 根目录,理论上讲系统中的一切都属于他. /bin 存放所有用户都能执行的命令(二进制) /boot 存放启动文件/内核的相关文件,一般独立成为一个分区. /dev 存放物理设备的目录 ...
- spring 事务传播
1.spring实现对事务的控制,使用的是代理的技术.通过生成的代理类来捕捉被代理类(也就是我们编写的类)的异常,决定事务的提交或回滚.从某一角度来说,spring事务是基于异常实现的.对于实现了接口 ...
- Multiple APK Support
[Multiple APK Support] Multiple APK support is a feature on Google Play that allows you to publish d ...
- 第七篇:Jmeter连接MySQL的测试
.准备一个有数据表格的MySQL数据库: 2.在测试计划面板上点击浏览按钮,把你的JDBC驱动添加进来: mysql-connector-java-5.1.26-bin.jar 3.添加一个线程组-- ...
- 六 json&pickle模块
之前我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,eval就不管用了 ...
- leetcode 树类型题
树的测试框架: // leetcodeTree.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream& ...