我最近与一位 friend 讨论时,他们说在C++中创建对象时,使用初始化列表(而不是简单地分配数据成员)可以提高性能。
为什么会这样(如果是真的)?
我找到此页面:
http://www.parashift.com/c++-faq/init-lists.html
他们提到了临时对象,但我本以为最近的编译器可以避免这种情况?
最佳答案
使用分配时,将在到达分配之前默认构造对象。如果构造和复制对象是昂贵的操作,则至少应摆脱其中之一。初始化列表摆脱了额外的复制操作。复制构造允许同时执行这两个操作。