【发布时间】:2015-07-24 13:18:35
【问题描述】:
我和我的一个同事争论过
Pt pt;
和
Pt pt = Pt();
是等价的。我怀疑在第二种情况下可以调用复制分配,但事实证明并非如此。
当我们进行我们的小实验时,我决定测试一个奇怪的东西,我的同事认为它甚至不会编译:
//here the compiler calls a copy constructor and doesn't call the default constructor prior to that
// O_o
Pt pt = pt;
这是一个工作示例:http://ideone.com/XmJSz7
所以,问题是 - 发生了什么:
Pt pt = pt;
【问题讨论】:
-
"我怀疑在第二种情况下可以调用复制分配,但事实证明并非如此。"我怀疑您是从事实是某事没有发生,它不可能发生。这是无效的推理。如果我过马路时不看两边,也没有被车撞到,这是否意味着有人说我可能会被车撞到是不正确的?
-
有效点。你建议 Pt pt = Pt();在某些情况下可以调用复制构造函数吗?如果是这样 - 你能举个例子吗?
-
@Vorren - 关于这个
Pt pt = Pt(),我更新了我的答案。
标签: c++ copy-constructor default-constructor