Define a Drone class to represent an autonomous delivery drone:
position (double*): Dynamically allocated array of size 3 representing [x, y, z] coordinates in meters.speed (double*): Dynamically allocated array of size 3 representing velocity components [vx, vy, vz] in m/s.batteryLevel (double): Current battery percentage (0.0 to 100.0).Drone(double x, double y, double z, double vx, double vy, double vz, double battery) allocating new double[3] for both position and speed.Drone(const Drone& other) implementing deep copy (allocates new memory and copies values).~Drone() deallocating dynamic memory with delete[].displayStatus() const: Prints position (x, y, z), velocity (vx, vy, vz), and battery percentage.setPosition(double x, double y, double z): Updates coordinates.setBatteryLevel(double battery): Updates battery.Drone object representing an active drone in transit.[Original Drone Initial] Pos: (12.5, 45.0, 120.0) m | Vel: (5.0, 2.5, 0.0) m/s | Battery: 88.5% [Copied Drone Initial] Pos: (12.5, 45.0, 120.0) m | Vel: (5.0, 2.5, 0.0) m/s | Battery: 88.5% [*] After mutating copied drone: [Original Drone After Copy Modification] Pos: (12.5, 45.0, 120.0) m | Vel: (5.0, 2.5, 0.0) m/s | Battery: 88.5% [Copied Drone After Modification] Pos: (50.0, 90.0, 150.0) m | Vel: (5.0, 2.5, 0.0) m/s | Battery: 45.0% [✓] Deep copy verified: Original drone memory unaffected. [✓] Drone class deep copy verified (Time: 0.008s, Memory: 2.1 MB)