class Transport{
private:
int weight; // Member variable (Private)
int capacity; // Member variable (Private)
int speed; // Member variable (Private)
public:
Transport(int aWeight, int aCapacity, int aSpeed) { // Default constructor
if(aWeight > 0) { // Perform validation at the time of creating object
weight = aWeight;
} else {
weight = 0;
}
if(aCapacity > 0) { // Perform validation at the time of creating object
capacity = aCapacity;
} else {
capacity = 0;
}
if(aSpeed > 0) { // Perform validation at the time of creating object
speed = aSpeed;
} else {
speed = 0;
}
}
void carryGoods(); // Member function (Public) -> Each transport has carrying goods functionality.
};
class LandTransport : public Transport{ // Inherit transport class
private:
char * transportationMode; // Member variable (Private)
char * vehicleType; // Member variable (Private)
public:
LandTransport(char * aTransporationMode, char * aVehicleType) {
transportationMode = new char[strlen(aTransporationMode)+1];
strcpy(transportationMode, aTransporationMode);
vehicleType = new char[strlen(aVehicleType)+1];
strcpy(vehicleType, aVehicleType);
}
};
Can you please describe, what is wrong here and what is best practice?