前言

阅读C++教材时,想必你听过复制初始化,直接初始化,值初始化这三个概念吧。笔者本人常将其混淆,遂在此记录下它们的具体含义以便日后查阅。

复制初始化( copy-initialization )

复制初始化使用 = 对变量进行初始化。

直接初始化( direct-initialization )

直接初始化用把初始化式子放到括号中的方式对变量进行初始化。

值初始化( value-initialization )

值初始化和上面两种初始C++中的几种初始化化是不同的概念。上两种初始化说明的是“ 用什么样的语法格式来初始化变量 ",而值初始化不但要说明“ 用什么样的语法格式来初始化变量 "( C++中用new开辟的空间通过在要初始化的空间的类型名后跟()来启用值初始化,而库类型则自动对未初始化的变量启用值初始化 ),而且还要说明是" 用什么值来初始化变量 "。

1. 当变量为内置类型,值初始化用0来对其初始化。

2. 当变量为类类型,值初始化用该类的默认构造函数初始化。

3. 当变量为类类型且没有默认构造函数时,值初始化要求程序员提供初始化值。

说明

值初始化通常用在初始化一段连续的内存区( 如vector容器,new一段空间 )。

最新文章

  1. IT持续集成之质量管理
  2. oracle--游标--bai
  3. cookie怎么用
  4. 【java基础】方法2
  5. nodeJS创建工程
  6. 不错的nginx文章,找个时间好好看下。
  7. php设计模式之单例、多例设计模式
  8. Chapter12:动态内存
  9. HW4.6
  10. Android- Activity not found
  11. Linux Shell : Test命令参数解析
  12. 【Spark2.0源码学习】-3.Endpoint模型介绍
  13. 关于Java中static关键字的用法以及从内存角度解析
  14. Loadrunner录制https脚本
  15. LeetCode算法扫题系列83
  16. Docker集群管理Swarm数据持久化
  17. 安装VS的过程
  18. 数据库连接池中是将connection放进threadlocal里的
  19. Linux下编译、使用静态库和动态库 自己测过的
  20. 在C#中执行带有GO的批量sql语句

热门文章

  1. ubuntu下apache和mysql的命令
  2. window.onunload | window.onbeforeunload
  3. MySQL查看和修改wait_timeout
  4. Python zfill() 方法
  5. ItelliJ基于Gradle创建及发布Web项目(三)
  6. spring in action小结2
  7. LPC(Low Pin Count) 与SIO(Super IO)
  8. FPGA设计经验谈 —— 10年FPGA开发经验的工程师肺腑之言
  9. [svc]nginx优化25条
  10. 高性能网络 | 你所不知道的TIME_WAIT和CLOSE_WAIT