使用零初始化类成员

时间:2013-01-08 12:27:03

标签: c++

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

3 个答案:

答案 0 :(得分:5)

class A
{
    int x_; 
    int y_; 

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

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

答案 1 :(得分:3)

值初始化:

struct X
{
    int i, j;
};

X* x = new X(); // The '()' are required.
// 0 == x->i && 0 == x->j

答案 2 :(得分:2)

class clasName{
 int x1= 0;
 int x2= 0;
 int x3= 0;
 int x4= 0;
 int x5= 0;
}

仅限C ++ 11。

相关问题