【发布时间】:2011-01-07 11:54:25
【问题描述】:
只是一个关于 c++ 编码风格的简单问题,
例如,如果我们不做任何其他事情,将使用初始化列表中的默认构造函数调用一个类的所有成员变量。 B默认构造函数会被调用,值会被设置为0,int();
class A
{
A();
private:
B b;
int value;
}
但是我的问题是,即使调用默认构造函数也是一个好习惯,总是自己做还是只在代码中添加额外的行
A::A() : b(), value() {}
【问题讨论】:
-
输入 A::A() { } 是否总是一个好主意,即使它是空的?
-
好吧,如果你不写:b(), value(),编译会为你做,所以它是不必要的,只有当你有一个参数来给构造函数时才使用初始化列表或者什么时候例如,您想将 int 设置为不为零的值
-
不,没有它,POD 类型(例如
value)将不会被初始化。
标签: c++ initialization