我的大学课程书指出:
当为类声明构造函数时,类对象的初始化变得强制性。
链接到本书的特定页面。
我们可以声明什么都不做的构造函数,因此初始化肯定不是强制性的,不是吗?
如果不是,作者的意思是说,如果我们显式声明构造函数,我们应该在风格上初始化类成员,也就是说,它是作为规则还是指南?
我的大学课程书指出:
当为类声明构造函数时,类对象的初始化变得强制性。
链接到本书的特定页面。
我们可以声明什么都不做的构造函数,因此初始化肯定不是强制性的,不是吗?
如果不是,作者的意思是说,如果我们显式声明构造函数,我们应该在风格上初始化类成员,也就是说,它是作为规则还是指南?
如果出现以下情况,我们必须在构造函数中初始化成员:
如果我们不想要任何奇怪的行为,应该初始化成员:
当为类声明构造函数时,类对象的初始化变得强制性。
这是真的,但初始化不必是明确的。请注意该术语objects
而不是member
.
如果您不明确地这样做,类类型成员将被默认初始化。
class A {};
class B
{
A a;
int x;
B()
{
//a is initialized here, although you didn't do it explicitly
//x is not initialized, nor is it mandatory to initialize it
//but x is not an object
}
};
当然,“强制”是一个强词。初始化 不是强制性的x
,但在你这样做之前你不能对它做任何事情。:)