快速初学者问题:
Do I have初始化简单的类成员变量,或者是否保证在任何情况下都为它们分配默认值?
Example:
class Foo {
int i;
// is i==0 or do I need the following line for that?
Foo() : i(0) {}
};
Thanks!
我必须初始化简单的类吗
成员变量,
不,你不have来初始化成员变量。如果您不初始化它们,请不要假设它们有任何值。
如果您制作一个测试程序并在调试器中检查这些值是如何初始化的,您可能会看到它们初始化为零,但这并不能保证。这些值被初始化为该位置堆栈上内存中的任何值。
或者他们能保证被分配吗
无论如何,它们的默认值是什么?
不保证它们会被分配任何值。如果您有成员对象,则会为它们调用默认构造函数,但对于 POD 类型,没有默认初始化。
即使您不必这样做,初始化也是一个很好的做法all类的成员(以避免难以发现错误并明确表示初始化/构造函数调用)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)