从函数参数中的临时值调用复制构造函数时

时间:2018-11-03 01:41:05

标签: c++

我对以下代码段代码为什么导致堆栈溢出有疑问。

class vector {
private:

public:

    vector (const vector& rhs) {
         /*
        _b = (rhs.size() == 0) ? nullptr : new value_type[rhs.size()];
        _e = _b + rhs.size());
        copy(rhs.begin(), rhs.end(), _b);
        } */
   }

那为什么代码会从vector(const vector RHS)之类的参数中删除“&”,从而导致堆栈溢出?

1 个答案:

答案 0 :(得分:1)

A(const A RHS) { ...} 

不是复制构造函数。复制构造函数将使用(const)对要复制的类型的引用。但是,在您的示例中,参数RHS本身需要复制。