c – 在这种特殊情况下,使用成员初始化器列表和在构造函数中赋值是否有区别?

在内部和关于生成的代码,是有一个真正的区别:

MyClass::MyClass(): _capacity(15), _data(NULL), _len(0)
{
}

MyClass::MyClass()
{
  _capacity=15;
  _data=NULL;
  _len=0
}

谢谢…

假设这些值是原始类型,那么没有,没有区别。初始化列表仅在作为成员的对象时有所不同,因为初始化列表可以将对象初始化为其最终值,而不是使用默认初始化随后分配。这实际上可以明显更快。
http://stackoverflow.com/questions/4589237/in-this-specific-case-is-there-a-difference-between-using-a-member-initializer

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c – 在这种特殊情况下,使用成员初始化器列表和在构造函数中赋值是否有区别?