Así que esta es una pequeña parte de una gran tarea que tengo, no estoy seguro de la sintaxis para esto.C++, ¿cómo puedo llamar a un operador de extracción sobrecargado de las clases Base en una clase derivada?
que tienen una clase base denominada Vehicle
, que tiene estos miembros: int fuelAmt
y int fuelUsage
)
(estoy usando espacio de nombres std
)
que sobrecarga el <<
operador de esta manera:
ostream& operator<<(ostream& osObject, const Vehicle& myVehicle)
{
cout << "Fuel Usage Rate: " << myVehicle.fuelUsage << endl
<< "Fuel Amount: " << myVehicle.fuelAmt << endl;
return osObject;
}
Lo llamo así:
cout << Vehicle;
El resultado es (ejemplo):
Fuel Usage Rate: 10;
Fuel Amount: 50;
También he una clase Airplane
que deriva de la clase Vehicle
, se introduce un nuevo miembro: int numEngines
.
Como puedo sobrecargar el operador <<
en la clase Airplane
, por lo que primero le llamará el "vehículo sobrecargado resultados operador", y luego los resultados de lo que sea que decirle al operador <<
imprimir desde la clase derivada ... por lo tanto, esto es lo que quiero decir:
necesito que funcione como esta en la clase Airplane
:
ostream& operator<<(ostream& osObject, const Airplane& myAirplane)
{
//First print the Fuel Usage rate and Fuel amount by calling
//the Base class overloaded << function
//then
cout << "Number of Engines: " << myAirplane.numEngines << endl;
return osObject;
}
¿Cómo activar la ejecución de la clase base de dar salida a los valores de sus miembros, en esta clase derivada?
¿Es algo así como cambiar el encabezado? De esta manera:
ostream& operator<<(ostream& osObject, const Airplane& myAirplane): operator<<Vehicle
En operador << para el vehículo que se escribe en cout. Debería escribir en osObject. – user763305