复制构造函数之间的区别?

时间:2015-04-01 07:11:30

标签: c++

我正在阅读C ++ Primer,这段代码让我感到困惑。也许我以前读过但却忘记了它的内容。

这段代码有2个拷贝构造函数,但我不知道它们之间有什么区别

class Quote {
public:
    Quote() = default;
    Quote(const Quote&) = default;    // <<== this one
    Quote(Quote&&) = default;         // <<== and this one
    Quote& operator=(const Quote&) = default;
    Quote& operator=(Quote&&) = default;
    virtual ~Quote() = default;
}

一般情况有什么不同?

什么是双“&amp;”意思?

1 个答案:

答案 0 :(得分:4)

它们不是复制构造函数,只是第一个:Quote(const Quote&) = default;。第二个是移动构造函数,对移动语义和C ++ 11做一些阅读。