c++中涉及到内置类型、复合类型、STL对象、结构体、类等对象,初始化也有很多类型:默认初始化、拷贝初始化、直接初始化。

默认初始化是指未指定变量具体值时,变量自动被初始化。默认初始化存在很多差异,分类总结对于熟练掌握及应用大有裨益!
1.内置类型
默认初始值由定义的位置决定,若不在任何块内,初始化为0,否则未定义,或者说是拥有一个不确定的值。

#include<iostream>
using namespace std;
int oi;
double od;
bool ob;
int main(){
    cout<<oi<<endl<<od<<endl<<ob<<endl;
    int ii;
    double id;
    bool ib;
    cout<<ii<<endl<<id<<endl<<ib<<endl;
    return 0;
}

output:
0
0
0
1570130464
6.95322e-310
0

1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21

2.复合类型
a.引用,声明时必须初始化,而且无法将引用重新绑定到另一个对象上。
b.指针,未定义。

3.STL对象
视情况而定,一般为空对象,例如 string str,则str是一个空字符串。

4.结构体和类
在初始化问题上,二者并无区别,故仅考虑结构体!
若我们自己没有定义构造函数,编译器会自动创建合成的默认构造函数,而一旦自己定义了,编译器就不会自动创建。
所以如果自己定义了构造函数,最好再定义一个默认构造函数。
默认构造函数,若函数初始值列表或者默认参数值提供了默认值,成员变量将被初始化为相应的值,否则会被初始化为相应的默认值。
合成的默认构造函数有两个问题:
- 对于内置类型或复合类型的变量,可能会初始化为未定义
- 对于该结构体包含自定义类型作为成员变量,如果该自定义类型无默认的构造函数,将无法默认初始化。
————————————————
版权声明:本文为CSDN博主「wangkingkingking」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wangkingkingking/article/details/79346527

C++中的默认初始化相关推荐

  1. keras模型中的默认初始化权重

    权重的初始化,决定了模型训练的起点.一个良好的初始化可以加快训练过程,同时避免模型收敛至局部最小值.为了在训练过程中避免使得权重的变化总沿着同一个方向,我们尽量避免将所有权重都初始化为同一个值,如全0 ...

  2. pop3服务器协议初始化失败,Exchange2003系统管理器中的默认POP3 虚拟服务器无法自动启动...

    Exchange系统 管理器中的默认POP3 虚拟服务器无法自动启动,导致Outlook Express 6.0无法收发 邮件:需要手动启动该服务,有办法让其自动启动吗? 而且Microsoft Ex ...

  3. C++中的值初始化和默认初始化

    1.值初始化 顾名思义,就是用数值初始化变量.如果没有给定一个初始值,就会根据变量或类对象的类型提供一个初始值.对于int类型其值初始化后的值为0. 2.默认初始化:如果定义变量时没有指定初值,则变量 ...

  4. jvm默认的初始化参数_您是否应该信任JVM中的默认设置?

    jvm默认的初始化参数 如今,JVM被认为是智能的. 预期配置不多-只需设置要在启动脚本中使用的最大堆,您就可以进行了. 所有其他默认设置都很好. 大概我们当中有些人误以为. 实际上,在运行时期间发生 ...

  5. Pytorch的默认初始化分布 nn.Embedding.weight初始化分布

    一.nn.Embedding.weight初始化分布 nn.Embedding.weight随机初始化方式是标准正态分布  ,即均值$\mu=0$,方差$\sigma=1$的正态分布. 论据1--查看 ...

  6. php键顺序初始化,Java类中各成员初始化的顺序

    了解Java中类各个成员的初始化顺序是非常重要的,这样你可以对类有全局的认识.不说太多,直接看下面的例子 class Father { static{ System. out.println(&quo ...

  7. 如何在Angular.js选择框中使用默认选项

    本文翻译自:How to have a default option in Angular.js select box I have searched Google and can't find an ...

  8. 回复:lerit的关于对象中字段的初始化问题

    谢谢lerit的对于我的博文<内存探寻1之--值类型和引用类型的内存分配机制>中提到的问题.这里先重述问题: "你好,你的文章写得很好,清晰了很多以前比较模糊的概念,我想提个问题 ...

  9. c++构造函数成员初始化中赋值和初始化列表两种方式的区别

    先总结下: 由于类成员初始化总在构造函数执行之前 1)从必要性: a. 成员是类或结构,且构造函数带参数:成员初始化时无法调用缺省(无参)构造函数 b. 成员是常量或引用:成员无法赋值,只能被初始化 ...

最新文章

  1. (转)HTTP 协议之压缩
  2. 技术方案设计的方法论及案例分享
  3. java模式匹配_用Java匹配模式
  4. 电脑ip地址设置_路由器动态IP和静态IP上网方式怎么设置【设置教程】
  5. 做老板的,首先要懂销售,销售什么?
  6. wifi卡慢延迟高_120平套三没网线,吃鸡延迟只有20ms,网件Orbi RBK50路由真香
  7. sprintf 函数
  8. SCP,两台机器互相使用拷贝
  9. 苏州大学计算机考研大纲2021,2021苏州大学考研参考书目
  10. 适用于Android的最佳本地音乐播放器
  11. Android 7.0以上版本 HTTPS 抓包解决方法
  12. Android 热修复Bugly和Sophix介绍
  13. mbp touchbar设置_千万不要再买 TouchBar 的 MBP,教训深刻!
  14. vscode VisualStudio区别
  15. 加入一个基于GOOGLE的站内搜索引擎
  16. Android 微光闪烁效果
  17. 【Spring】Jasper入门
  18. Kafka-我发的消息都发到哪儿去了?
  19. 无线网络技术—wimax技术
  20. 【搬运】SharpPcap的一些例子

热门文章

  1. 理解关于java反射中类的域及修饰符
  2. Windows Phone 开发环境的搭建
  3. 转自JIM Wang:把 isv.config.xml 按钮事件移动到 entity.onload()
  4. [基础题]4、设计一个家政服务规范: 洗衣服, 扫地, 买菜, 做饭
  5. Metal之Shading Language Specification(着色语言规范)
  6. 395. 至少有K个重复字符的最长子串
  7. 2020\Simulation_1\6.递增三元组
  8. Python3 关键字nonlocal和global的用法与区别
  9. Go语言范围(Range)
  10. java与spss交互,[转载]如何用SPSS做中介效应与调节效应(转)