我是靠谱客的博主 孤独哈密瓜,这篇文章主要介绍默认初始化&拷贝初始化&直接初始化&值初始化&列表初始化,现在分享给大家,希望可以做个参考。

一、各种初始化的形式

/* 定义变量形式一:不指定初始值 */
int a;	    // 默认初始化

/* 定义变量形式二:指定初始值 */
int b = 1;		// 拷贝初始化
int b(1);		// 直接初始化
int b = {1};	// 列表初始化
int b{1};		// 列表初始化

 

二、默认初始化

  • 定义变量时没有指定初值(此时变量被赋予了“默认值”)

内置类型:①全局变量被初始化为0,②局部变量不被初始化(值是未定义的)

类类型:①有默认构造函数则由默认构造函数初始化,②无默认构造函数同内置类型

 

三、拷贝初始化

  • 使用等号=初始化一个变量(编译器把等号右侧的初始值拷贝到新创建的对象中去)

 

四、直接初始化

    string s1("hello");            // 直接初始化
    string s2(10, 'c');            // 直接初始化
  • 直接初始化与我们类的构造函数息息相关。

 

五、列表初始化

        int a = {10};
        int a{10};
        vector<int> ivec = {1, 3, 5, 7};
        vector<int> ivec{1, 3, 5, 7};
  • 列表初始化之所以可行,是因为我们在相应的类的构造函数中定义了该种方法。

 

转载于:https://www.cnblogs.com/xzxl/p/7764314.html

最后

以上就是孤独哈密瓜最近收集整理的关于默认初始化&拷贝初始化&直接初始化&值初始化&列表初始化的全部内容,更多相关默认初始化&拷贝初始化&直接初始化&值初始化&列表初始化内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(121)

评论列表共有 0 条评论

立即
投稿
返回
顶部