C ++中数据成员初始化的区别

时间:2018-09-27 13:55:28

标签: c++ constructor

想知道,这些初始化在C ++类中有什么区别

第一:

Complex (): real(0), imaginary(0) { }

秒:

Complex() {
   real = 0;
   imaginary = 0;
}

1 个答案:

答案 0 :(得分:0)

在第一个变量中,成员直接用值进行初始化(在可以时使用)。这是初始化const成员的唯一方法。常数有很多有用的副作用。

在第二个变体中,成员首先是 default-initialized (由编译器生成的代码),然后是 assigned 值(在无法避免的情况下使用,通常可以)。