如何制作深拷贝?

时间:2015-05-27 17:38:10

标签: c++ arrays class constructor

VehicleRegistry::VehicleRegistry(){
    vehicles = new Vehicle[4];
    numvehicles = 0;
    maxsize = 0;
}

VehicleRegistry::VehicleRegistry(const VehicleRegistry& vr){

}

如何制作该动态数组的深层副本?

1 个答案:

答案 0 :(得分:0)

以下是一种可能的解决方案:

VehicleRegistry::VehicleRegistry(const VehicleRegistry& vr){
    vehicles = new Vehicle[4];
    copy (vr.vehicles, vr.vehicles+4, vechicles); 
    numvehicles = vr.numvehicles ;
    maxsize = vr.maxsize ;
}

不要忘记,如果你有深层副本,你也需要一个深度分配操作符。

要了解详细信息,请查看教程,例如this one

话虽这么说,vector<Vehicles>可能更容易管理。