最近上c++的课,老师说new带有自动初始化功能,但是我测试了下,发现如果对与类型变量(如int,char等等内置类型),在new一段空间时,如果后面不加括号()的话,输出其实是不会被初始化的,仍然是随机值,测试如下:

int main()
{int *number = new int[5];for (int i = 0;i<5;++i){cout << number[i] << endl;}delete[] number;number = NULL;return 0;
}
输出为:
-842150451
-842150451
-842150451
-842150451
-842150451

可见后面没有加括号()的话,得到的是随机值,并不会被初始化,那么我们在后面加入括号()呢?

int main()
{int *number = new int[5]();for (int i = 0;i<5;++i){cout << number[i] << endl;}delete[] number;number = NULL;return 0;
}
输出为:
0
0
0
0
0

在后面加入括号()后就进行了初始化。

按之前学到的来看,int()会得到一个值为0的整型数据,那么是不是只是将这样得到的5个值为0的整型数据放到了申请的空间中,而不是new对它进行了初始化呢?

那么再来看看我们c++中的特色—类,类对象是通过构造函数来进行初始化的,那么在我们new一个对象空间的时候它会不会被初始化呢,测试如下:

class Program
{public:Program() { a = 10; }void PrintA(){cout << a << endl;}
private:int a;
};
int main()
{Program *pro1 = new Program;
pro1->PrintA();Program *pro2 = new Program();
pro2->PrintA();return 0;
}
输出为:
10
10

可见new后面是否带有括号()都会进行初始化,但是对于一个类对象来说,它产生的时候不是就会默认调用自己的对应的构造函数吗?我这里是无参的构造函数,那么在这个对象产生时我没有给它参数所以它也会自己调用无参的构造函数。这样看来其实new也没有对它进行自动初始化呀,那么如何理解new会自动初始化呢?

c++中new是否会自动初始化相关推荐

  1. 台达服务器怎么把绝对位置初始化,台达plc上电时参数的自动初始化实例

    有关台达plc的编程实例,在台达plc中上电时参数自动初始化的例子,介绍了该编程实例的控制要求,元件说明,以及自动初始化的控制程序的完整代码,程序的功能说明,供大家学习参考. 上电时参数的自动初始化 ...

  2. UserControl 中包含封装了集合对象的属性被设计器自动初始化所引起的错误!也有关于List的问题

    在CSDN上看到了一篇关于UserControl引起的问题,去重现了一下,并进行了一些小结. 自定义 UserControl 中包含封装了 List <接口> 类型字段的属性,编译后造成引 ...

  3. 【深度学习】解析神经网络中的数值稳定性、模型初始化和分布偏移(Pytorch)

    [深度学习]解析神经网络中的数值稳定性.模型初始化和分布偏移 文章目录 1 概述1.1 梯度消失和梯度爆炸1.2 打破对称性 2 参数初始化 3 环境和分布偏移3.1 协变量偏移3.2 标签偏移3.3 ...

  4. rt-thread 自动初始化机制分析-关于编译链接及段信息

    本来我的工作主要集中于嵌入式Linux这一块,关于RTOS,虽然之前也有用UcosII做过一两个项目并量产,但并不是主要发力点,感觉相对与Linux来说,RTOS太过"easy", ...

  5. node工程默认url_node命令行工具之实现项目工程自动初始化的标准流程

    一.目的 传统的前端项目初始流程一般是这样: 可以看出,传统的初始化步骤,花费的时间并不少.而且,人工操作的情况下,总有改漏的情况出现.这个缺点有时很致命. 甚至有马大哈,没有更新项目仓库地址,导致提 ...

  6. java快速注释怎么配置_详解如何在低版本的Spring中快速实现类似自动配置的功能...

    在 Spring 4 后才引入了 @Conditional 等条件注解,它是 Spring Boot 中实现自动配置的最大功臣! 那么问题来了:如果我们还在使用 Spring 3.x 的老版本,这时候 ...

  7. AirtestIDE1.2.13的安卓手机设置自动初始化功能

    此文章来源于项目官方公众号:"AirtestProject" 版权声明:允许转载,但转载必须保留原链接:请勿用作商业或者非法用途 1. 前言 在AirtestIDE1.2.13版本 ...

  8. RT-Thread 的自动初始化机制

    金鳞岂是池中物,一遇风云便化龙. 九霄龙吟惊天变,风云际会浅水游. 出处<风云>,泥菩萨给雄霸算卦的批文. 一.前言介绍 RT-Thread 的自动初始化机制使用了自定义 RTI 符号段, ...

  9. android如何设置自动补,Android Studio 中设置代码块自动补齐

    AS中很多提示键,并不如Eclipse中做的好,需要我们自己去自定义.这里以switch...case为例,讲解一下如何设置代码自动补全. 1.进入settings -->  Editor -- ...

最新文章

  1. 使用xmanager连接centos5.5
  2. 详细介绍Python中的“魔术方法“__XXX___; 概述__str__()方法;__new__()方法; 三. __ new__ 和__init__的区别
  3. C#里面SQLite读取数据的操作
  4. telephone 为空 唯一索引_记一次线上唯一索引失效没有起效的场景
  5. MySQL 存储引擎和锁
  6. 代码示例_mmap的实现
  7. springboot分页展示功能_SpringBoot实战项目(三)用户列表以及分页功能实现
  8. WebStorm设置中文,直接安装官方插件
  9. wps带阴影的边框怎么设置_win7系统下wps阴影边框如何设置
  10. 分析即服务(AaaS)到底是什么?终于有人讲明白了
  11. 12大类150个图像处理和深度学习开源数据集
  12. Android 微信聊天页面
  13. 多商户JAVA扫码点餐小程序源码SaaS模式
  14. 天津大学计算机学院考研复试名单,天津大学各学院2019考研复试办法及复试名单...
  15. MATLAB中画折线图:plot函数的简单用法
  16. 多线程归并排序C语言,快速排序 和 归并排序  c语言实现
  17. 最好玩的计算机游戏排行,10款好玩的电脑单机游戏 好玩的单机游戏排行
  18. Unity帧率的计算和显示
  19. 基于小波变换的语音增强算法简单综述
  20. 计算机宏应用实例,计算机等级考试二级Access宏的使用教程

热门文章

  1. 关于网络渗透的过程以及感想记录
  2. React + Taro 小程序跳转公众号
  3. 电脑副业能做什么?一台电脑能做的副业
  4. matlab 摄氏度符号怎么打
  5. 小学生python游戏编程arcade----可旋转的坦克的发射子弹
  6. 爬虫,爬取猫眼电影Top100的电影名与评分
  7. matlab 基于拉依达检验法(3σ准则) 实现多类别多参数的批量检验异常值与异常样本
  8. 数据分析工具的深度对比:FineBI vs PowerBI
  9. 1079 延迟的回文数 (20 分) java题解
  10. WineBottler for Mac (Mac运行exe程序) 使用教程