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