使用零初始化类成员

Neo*_*low 1 c++

我的代码中有一个类,它有一些整数数据成员但没有方法.当我使用new()创建一个新对象时,是否存在用0初始化所有数据项的方法?

tma*_*ric 5

class A
{
    int x_; 
    int y_; 

    public: 
        A() 
           : 
             x_(0),
             y_(0)
        {} 
};
Run Code Online (Sandbox Code Playgroud)

括号"{}"之前的A()构造函数的一部分称为"初始化列表",用于在上面的情况下将变量初始化为默认值0,或者可以传递给其他一些值.可以将这些值作为参数的构造函数.但是,初始化类型A的对象(例如,使用"new")时,属性将初始化为这些值.以与声明属性相同的顺序初始化属性是一种很好的编码风格,它使代码更具可读性.

  • 不仅如此,它们按照它们在课堂上宣布的顺序进行初始化.`:y_(0),x_(y)`是一件坏事,因为`x`不会被正确初始化. (2认同)