【发布时间】:2016-10-03 13:15:57
【问题描述】:
在我的代码中,我遇到了上述情况。在什么情况下我们需要使用上述的对象创建方式?我们不能简单地创建对象 X x 吗?我们在 X x = X() 中取得了什么成就;类型声明?
【问题讨论】:
-
今天的答案是“没有”。但是,如果您不删除副本,那么理论上
X x = X()默认允许首先构造两个X实例,然后将一个复制/移动分配给另一个。 -
@AndyG 即使有省略,仍然存在(轻微)差异:如果
X不可复制/可移动,则X x = X()格式错误。 -
@AndyG 这取决于
X。差异可能很大。这是默认初始化与值初始化。见stackoverflow.com/questions/1613341/…。 -
很公平,感谢您的澄清。
-
另一个可能的重复:stackoverflow.com/q/1051379/27678
标签: c++