1

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

4

3 回答 3

5
class A
{
    int x_; 
    int y_; 

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

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

于 2013-01-08T12:37:23.207 回答
3

值初始化:

struct X
{
    int i, j;
};

X* x = new X(); // The '()' are required.
// 0 == x->i && 0 == x->j
于 2013-01-08T12:33:31.063 回答
2
class clasName{
 int x1= 0;
 int x2= 0;
 int x3= 0;
 int x4= 0;
 int x5= 0;
}

仅在 C++11 中。

于 2013-01-08T12:30:14.503 回答