PFArrayD.cpp 实现拷贝构造函数
PFArrayD.cpp implementation 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];
}
}
有人可以解释一下这段代码中发生了什么吗?从头到尾。
我觉得很简单。
看起来你的 class 有一个名为 "a" 的数组成员,成员函数 getcapacity() 知道它的大小,并且使用的元素从 getNumberUsed() 知道。
所以复制构造函数在第一行获取了要复制的对象的大小和使用的元素,分别调用了那些成员函数。
然后分配合适的内存大小,并直接复制vector a中使用过的元素,它应该是新数据的容器。
有没有什么特别不明白的地方??
所以我的 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];
}
}
有人可以解释一下这段代码中发生了什么吗?从头到尾。
我觉得很简单。
看起来你的 class 有一个名为 "a" 的数组成员,成员函数 getcapacity() 知道它的大小,并且使用的元素从 getNumberUsed() 知道。
所以复制构造函数在第一行获取了要复制的对象的大小和使用的元素,分别调用了那些成员函数。
然后分配合适的内存大小,并直接复制vector a中使用过的元素,它应该是新数据的容器。
有没有什么特别不明白的地方??