繁体   English   中英

用零初始化类成员

[英]Initializing Class members with zero

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

class A
{
    int x_; 
    int y_; 

    public: 
        A() 
           : 
             x_(0),
             y_(0)
        {} 
};

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

值初始化:

struct X
{
    int i, j;
};

X* x = new X(); // The '()' are required.
// 0 == x->i && 0 == x->j
class clasName{
 int x1= 0;
 int x2= 0;
 int x3= 0;
 int x4= 0;
 int x5= 0;
}

仅在C ++ 11中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM