【发布时间】:2015-08-04 17:37:56
【问题描述】:
关于密切相关的主题有很多 SO 问题,但我找不到一个能完全解决我的问题的问题。
给定:
std::vector<int> a, b;
以下两种情况有什么区别:
std::vector<int> c(a); // case c(a)
std::vector<int> d = a; // case d=a
还有以后:
c(b); // c(b): does this make sense?
c = b; // or is this better? and if so, why?
【问题讨论】:
-
所以答案是复制省略和返回值优化是判断我是使用c(b)还是c = b的关键?!我以前从未听说过这些术语。如果不问,我怎么会发现呢?
-
@LightnessRacesinOrbit 反对者。这个问题可能还有其他一些弱点,但我认为它被否决了,因为大多数人认为很容易找到我重复的问题。
-
你知道“假设”是做什么的:)
-
我不知道为什么有人选择它作为副本。我确定某处有重复,但肯定不是关于复制省略的问题的重复。
-
投票重新打开,因为虽然标记的重复问题可能相关,但 OP 提出了不同的问题,并且重复中的答案都没有直接回答它。
标签: c++ copy-constructor assignment-operator