C++创建对象,初始化列表与赋值?

use*_*112 4 c++ performance

我最近和一位朋友讨论过他们说当你在C++中创建对象时使用初始化列表(而不是简单地分配数据成员)时会有性能提升.

为什么这样(如果是真的)?

我找到了这个页面:

http://www.parashift.com/c++-faq/init-lists.html

他们提到临时对象,但我想最近的编译器可以避免这种情况?

Nik*_* C. 5

使用赋值时,在进行赋值之前,对象是默认构造的.如果构造和复制对象是昂贵的操作,你至少应该摆脱其中一个.初始化列表摆脱了额外的复制操作.复制构建允许同时执行两者.