C语言中的const和static用来修饰变量或者函数,用const修饰表示不可改变,用static修饰表示变量或者函数是静态的,作用域控制在函数内。

const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间。

static表示的是静态的。类的静态成员函数、静态成员变量是和类相关的,而不是和类的具体对象相关的。即使没有具体对象,也能调用类的静态成员函数和成员变量。一般类的静态函数几乎就是一个全局函数,只不过它的作用域限于包含它的文件中。

在C++中,static静态成员变量不能在类的内部初始化。在类的内部只是声明,定义必须在类定义体的外部,通常在类的实现文件中初始化,如:double Account::Rate=2.25;static关键字只能用于类定义体内部的声明中,定义时不能标示为static

在C++中,const成员变量也不能在类定义处初始化,只能通过构造函数初始化列表进行,并且必须有构造函数。

const数据成员 只在某个对象生存期内是常量,而对于整个类而言却是可变的。因为类可以创建多个对象,不同的对象其const数据成员的值可以不同。所以不能在类的声明中初始化const数据成员,因为类的对象没被创建时,编译器不知道const数据成员的值是什么。

const数据成员的初始化只能在类的构造函数的初始化列表中进行。要想建立在整个类中都恒定的常量,应该用类中的枚举常量来实现,或者static cosnt。

转载:https://www.cnblogs.com/phpzhou/p/6390869.html

参考:https://www.cnblogs.com/zhangjiansheng/p/6527708.html

最新文章

  1. MarkdownPad2 Pro v2.4.2.29969 专业中文破解版完美支持table表格语法
  2. springMVC 相对于 Structs 的优势
  3. Castle 集锦
  4. C#用串口接收事件接不全数据的处理
  5. Systemd 入门教程:实战篇
  6. 浅谈iOS的Autolayout
  7. sublime安装插件
  8. JFreeChart多坐标轴曲线图
  9. gcc/g++ 如何支持c11 / c++11标准编译
  10. Windbg调试命令详解(1)
  11. Milk Pails
  12. 新建play项目eclipsify后导入eclipse后无法debug调试
  13. 基于Mysql数据库的SSM分页查询
  14. Unable to find utility "instruments", not a developer tool or in PATH
  15. LINUX常用命令 --- 权限篇
  16. Class create, device create, device create file【转】
  17. 解析神奇的 Object.defineProperty
  18. python获取公网ip,本地ip及所在国家城市等相关信息收藏
  19. DS树+图综合练习--二叉树之最大路径
  20. Java XML SAX 解析注意

热门文章

  1. how to run faster
  2. Java集合Set、Map、HashSet、HashMap、TreeSet、TreeMap等
  3. VisualStudio2017中新建的ASP.NET Core项目中的各个文件的含义
  4. 719D(树形dp)
  5. IT兄弟连 Java语法教程 Java语言的跨平台特性
  6. 利用正则取出Stirng中“”引号内的内容
  7. 基于ZFAKA二次开发,添加PayJS支付渠道
  8. vue 开发笔记
  9. sublime text 3 添加 javascript 代码片段 ( snippet )
  10. 定位之float 同一父元素的float相互影响,float是margin盒子在父元素的padding盒子内