如何做深拷贝

How to make deep copy?

本文关键字:深拷贝 何做      更新时间:2023-10-16
VehicleRegistry::VehicleRegistry(){
    vehicles = new Vehicle[4];
    numvehicles = 0;
    maxsize = 0;
}
VehicleRegistry::VehicleRegistry(const VehicleRegistry& vr){
}

如何对动态数组进行深度复制?

这里有一个可能的解决方案:

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

不要忘记,如果你有一个深度拷贝,你还需要一个深度赋值操作符。

要了解细节,请查看教程,例如这个。

话虽如此,vector<Vehicles>可能更容易管理。