2016-02-07 236 views
2

我对如何初始化像int或double这样的内置类型有点困惑。我正在谈论复制初始化和直接初始化:初始化内置类型初始化

int a = 0; // copy initialization 
int b(0); // direct initialization 

什么是最佳实践?所有C++版本都可以直接初始化吗?

回答

2

“最佳实践”恐怕不是一朝一夕所能明确提出 - 有些人喜欢一个,其他的一些,和现代编译器应该做同样的事情,两个,除非你的空物体构造函数的东西,编译器不能消除。对于编译器本身知道的基本类型,生成的代码应该是相同的[可能有些编译器会做出细微的区别,因为代码采用了不同的路径或类似的方式,所以代码生成的顺序微妙不同,导致不同的优化或不同的寄存器分配等,但通常我会很失望,如果有任何可测量的差异]

我不知道的一个版本的C++并不简单类型的支持。显然,对于类和其他复杂对象,它在某种程度上取决于可用的构造函数和类。