如何初始化函数中的局部变量?

Xav*_*ier 1 c++

如何初始化函数中的局部变量?出于性能原因,我应该这样做吗?

Point2D point(1,2);
Run Code Online (Sandbox Code Playgroud)

或者像这样?

Point2D point = Point2D(1,2);
Run Code Online (Sandbox Code Playgroud)

它甚至重要吗?

Bjö*_*lex 7

不,没关系.两者都将导致对同一构造函数的调用.

  • @Paul:可以,但大多数编译器都不会启用优化(另请参阅'copy elision').这基本上是_direct-initialization_和_copy-initialization_之间的区别. (3认同)
  • 不是第二个调用复制构造函数? (2认同)