直接初试化,拷贝初试化,值初试化

列表初试化:用花括号初试化

直接初试化:将参数放在括号中初试化

拷贝初试化:用=或者将累的对象当做初试化的参数

值初试化:C++中用new开辟的空间通过在要初始化的空间的类型名后跟()来启用值初始化,而库类型则自动对未初始化的变量启用值初始化

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

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

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

默认情况下,动态分配的对象时默认初始化的,这意味着内置类型或组合类型的对象的值时未定义的,而类类型对象将默认构造函数进行初始化;也可以对动态分配的对象进行值初始化,只需在类型名之后跟一对空括号即可。

合成的默认构造函数中,如果是类对象,那么调用这个对象的默认构造函数,如果是内置类型则未定义。

#include <iostream>
using namespace std;

class A{
public:
private:
    A &operator=(const A&);
    int a;
};

int main(int argc, char **argv)
{
    A a, *pa = new A();
    return 0;
}
a={a=-6589}    //没有给a初试化
*pa={a=0}        //内置类型初试化为0

 

posted @ 2016-12-18 02:13  uangyy  阅读(186)  评论(0编辑  收藏  举报