5

我最近和一个朋友讨论过,他们说在 C++ 中创建对象时使用初始化列表(而不是简单地分配数据成员)可以提高性能。

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

我找到了这个页面:

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

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

4

1 回答 1

5

使用赋值时,对象是默认构造的,然后再进行赋值。如果构造和复制一个对象是昂贵的操作,你至少应该摆脱其中一个。初始化列表摆脱了额外的复制操作。复制构造允许同时做这两个。

于 2012-12-15T17:42:23.640 回答