所以我的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];
}
}
有人可以解释一下这段代码中发生的事情吗?从开始到结束。
答案 0 :(得分:1)
对我来说似乎很简单。
看起来你的类有一个名为“a”的数组成员,其成员funciton getcapacity()的大小已知,并且已使用的元素来自getNumberUsed()。
因此,复制构造函数获取要在第一行中复制的对象的大小和使用元素,分别调用这些成员函数。
然后它正在分配正确的内存大小,并在向量a中对所使用的元素进行简单的复制,这应该是新数据的容器。
你有什么特别不懂的东西吗?