初始化列表与构造函数赋值:内部差异
初始化类成员时,可以选择使用成员初始值设定项列表或分配值在构造函数体内。在内部,这些方法有细微的差别。
成员初始值设定项列表
使用成员初始值设定项列表,如本示例所示:
MyClass::MyClass(): _capacity(15), _data(NULL), _len(0) { }
在进入构造函数体之前直接初始化成员变量。这对于以下情况特别有用:
构造函数分配
另一方面,在构造函数体内赋值,如下例所示:
MyClass::MyClass() { _capacity=15; _data=NULL; _len=0 }
在构造函数执行期间执行初始化。这种方法通常用于非常量成员和可以根据构造函数的参数初始化的成员。
生成代码的比较
通常,两种方法都会生成类似的结果代码。但是,对于常量成员或引用,只有成员初始值设定项列表可以初始化它们,因为构造函数赋值会导致编译错误。
以上是成员初始化列表与构造函数分配:什么时候应该使用哪个?的详细内容。更多信息请关注PHP中文网其他相关文章!