构造函数中初始化技术的深入分析
考虑以下代码:
MyClass::MyClass() : _capacity(15), _data(NULL), _len(0) {}
与:
MyClass::MyClass() { _capacity = 15; _data = NULL; _len = 0; }
重要的是请注意,选择使用初始化列表还是在构造函数中赋值取决于成员初始化的具体要求。
成员初始化列表
使用初始化列表在构造时初始化当前对象的所有成员。通常推荐用于以下几种场景:
在提供的示例中,_capacity、_data 和 _len 不是常量成员或引用,这两种方法都是有效的,并且将产生等效的内部生成的代码。但是,如果这些成员中的任何一个是常量或引用,则需要初始化列表。
常规赋值与初始化列表
构造函数中的常规赋值通常被认为对于非常量成员变量是可以接受的,它们有一些缺点:
结论
建议使用初始化列表来初始化常量成员、引用和将参数传递给基类构造函数。对于常规成员变量,常规赋值语句可能更合适,但初始化列表仍然提供了更简洁准确的方法。
以上是初始化列表与构造函数中的赋值:什么时候应该使用哪个?的详细内容。更多信息请关注PHP中文网其他相关文章!