PFArrayD.cpp实现复制构造函数

时间:2015-12-07 15:48:18

标签: c++ copy-constructor

所以我的PFArrayD.cpp全部实现并且工作正常,我很难理解复制构造函数是如何工作的。这是复制构造函数的代码。

PFArrayD::PFArrayD(const PFArrayD& pfaObject) : capacity(pfaObject.getCapacity()), //SOLUTION
used(pfaObject.getNumberUsed()){

    a = new double[capacity];
    for (int i = 0; i < used; i++){
        a[i] = pfaObject.a[i];
    }
}

有人可以解释一下这段代码中发生的事情吗?从开始到结束。

1 个答案:

答案 0 :(得分:1)

对我来说似乎很简单。

看起来你的类有一个名为“a”的数组成员,其成员funciton getcapacity()的大小已知,并且已使用的元素来自getNumberUsed()。

因此,复制构造函数获取要在第一行中复制的对象的大小和使用元素,分别调用这些成员函数。

然后它正在分配正确的内存大小,并在向量a中对所使用的元素进行简单的复制,这应该是新数据的容器。

你有什么特别不懂的东西吗?