zoukankan      html  css  js  c++  java
  • 默认初始化&拷贝初始化&直接初始化&值初始化&列表初始化

    一、各种初始化的形式

    /* 定义变量形式一:不指定初始值 */
    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};
    
    • 列表初始化之所以可行,是因为我们在相应的类的构造函数中定义了该种方法。
  • 相关阅读:
    Careercup
    Careercup
    Careercup
    Careercup
    Careercup
    Careercup
    Careercup
    Careercup
    Careercup
    Careercup
  • 原文地址:https://www.cnblogs.com/xzxl/p/7764314.html
Copyright © 2011-2022 走看看