类和构造函数初始化的区别
本文关键字:区别 初始化 构造函数 | 更新日期: 2023-09-27 18:09:25
我想理解下面的代码
class x
{
int a=3;
...
other class members
}
class y
{
int a;
public y()
{
a=3;
}
...
other class members
}
这两个初始化方法的区别是什么?它还与静态类有关吗?
在c++ 11标准下,可以为a提供一个类内初始化器数据成员。当我们创建对象时,类内初始化器将是用于初始化数据成员。没有初始化式的成员默认初始化。
第一个示例使用了类内初始化器,而第二个示例仅在默认构造函数中初始化a
。
假设你有另一个构造函数z
,它接受一些参数,但没有初始化数据成员a
。然后调用z
时,
- 如果你使用类内初始化器,它将用于设置
a = 3
。 - 如果你只在默认构造函数中初始化
a
,那么a
将不初始化。