Copy the files Cane.cpp, Cane.h, Sfera.cpp, Sfera.h ******************* Exercise 1 *********************** Write a program that uses the "Cane" class: - create two dogs - print their age and weight - change the weight of one of the dogs - makes the second dog the same as the first - use the “parla” function for the two dogs Execution example: ./usaCane.exe   Constructor Dog   Constructor Dog Bobi is 4 years old. It weighs 30 Kg. We change the weight of Bobi Bobi is 4 years old. It weighs 10 Kg. Fido is 2 years old. It weighs 15 Kg. Fido becomes a clone of Bobi Fido is 4 years old. It weighs 10 Kg. BAU !! BAU !! Destructor Dog Destructor Dog ******************* Exercise 2 *********************** Write a program that uses the "Sfera" class: - create a Sphere s and a pointer to the Sphere created sPtr - print the center, the surface and the volume of the sphere using the object s - print the center, the surface and the volume of the sphere using the sPtr pointer Execution example: ./usaSfera.exe Sphere: Center: (1, 2, 3) radius = 4 Surface: 201.024; Volume: 268.032   We access the sphere via a pointer Sphere: Center: (1, 2, 3) radius = 4 Surface: 201.024; Volume: 268.032 ******************* Exercise 3 *********************** Write a program that uses the "Sfera" class: - create an array of spheres - print the center, the surface and the volume of each sphere of the iterating array   along the elements of the array Execution example: ./usaSfera2.exe Sphere: Center: (1, 2, 3) radius = 4 Surface: 201.024; Volume: 268.032 Sphere: Center: (11, 12, 13) radius = 14 Surface: 2462.54; Volume: 11491.9 Sphere: Center: (21, 22, 23) radius = 24 Surface: 7236.86; Volume: 57894.9 Sphere: Center: (31, 32, 33) radius = 34 Surface: 14524; Volume: 164605 ******************* Exercise 4 *********************** Write a program that uses the "Sfera" class: - create an array of pointers to spheres - center print, surface and volume of each sphere of the iterating array   along the elements of the array Execution example: ./usaSfera3.exe Sphere: Center: (1, 2, 3) radius = 4 Surface: 201.024; Volume: 268.032 Sphere: Center: (11, 12, 13) radius = 14 Surface: 2462.54; Volume: 11491.9 Sphere: Center: (21, 22, 23) radius = 24 Surface: 7236.86; Volume: 57894.9 Sphere: Center: (31, 32, 33) radius = 34 Surface: 14524; Volume: 164605 ******************* Exercise 5 *********************** Write a "Cubo" class and a program that uses it. The data members are the 3 coordinates of the center of the cube and its side There must be functions getX (), setX (double), getY (), setY (double), getZ (), setZ (double), getLato (), setLato (double), print (), getArea () and getVolume () Hint: this class is very similar to the Sphere class: start from there. Execution example: ./usaCubo.exe Cube: Center: (1, 2, 3) Side = 4 Surface: 96; Volume: 64   We access the cube via a pointer Cube: Center: (1, 2, 3) Side = 4 Surface: 96; Volume: 64 ******************* Exercise 6 *********************** Write a "Punto" class in 3 dimensions and a program that uses it. The data members are the 3 coordinates of the "point". there must be functions: getX (), setX (double), getY (), setY (double), getZ (), setZ (double), print (), distance (Point &) The distance function (Point &) belongs to an object of the Point class, let's call it p1, and its argument is another object of the class Point, p2. By writing double dist = p1.distance (p2) the function must return the distance between p1 and p2. Execution example: ./usaPunto.exe   Point p1: [1, 2, 3]   Point p2: [4, 5, 6]   The distance between p1 and p2: 5.19615   We access the points via pointer   Point p1: [1, 2, 3]   Point p2: [4, 5, 6]   The distance between p1 and p2: 5.19615 ******************* Exercise 7 *********************** Implement a "Sfera" class whose data members are: - the Center, an object of the Punto class - the radius (a double) There must be: - a constructor with arguments "Punto" and a double - set and get functions for the datamembers "center" (i.e. Point) and "radius" - functions getArea, getVolume, getName, print - a bool function that returns true if two spheres overlap,   false if they do not overlap (N.B .: two spheres overlap   if the distance between the centers is less than the sum of their radii) Hint: the Point class can be reused as equal. Start from the class "Sfera" and make the (few) necessary changes. Execution example: ./usaSfera.exe  Sfera1  center: [1, 2, 3]  radius: 4; Surface area: 201.024; Volume: 268.032  We access the sphere via a pointer  Sfera1  center: [1, 2, 3]  radius: 4; Surface area: 201.024; Volume: 268.032  Sfera2  center: [10, 20, 30]  radius: 40; Surface area: 20102.4; Volume: 268032  We access the sphere via a pointer  Sfera2  center: [10, 20, 30]  radius: 40; Surface area: 20102.4; Volume: 268032  the spheres overlap