Так что это небольшая часть большого моего задания, я просто не уверен в синтаксисе этого.
У меня есть базовый класс с именем Vehicle
, который имеет следующие члены: int fuelAmt
и int fuelUsage
)
(я использую пространство имен std
)
Я перегрузил оператор <<
следующим образом:
ostream& operator<<(ostream& osObject, const Vehicle& myVehicle)
{
cout << "Fuel Usage Rate: " << myVehicle.fuelUsage << endl
<< "Fuel Amount: " << myVehicle.fuelAmt << endl;
return osObject;
}
Я тогда называю это так:
cout << Vehicle;
Результат (пример):
Fuel Usage Rate: 10;
Fuel Amount: 50;
У меня также есть класс Airplane
, производный от класса Vehicle
, он вводит новый член: int numEngines
.
Как я могу перегрузить оператор <<
в классе Airplane
, чтобы он сначала вызывал «Результаты оператора, перегруженного транспортным средством», а затем результаты всего, что я скажу оператору <<
для печати из производный класс ... Итак, вот что я имею в виду:
Мне нужно, чтобы он функционировал следующим образом в 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;
}
Как мне запустить выполнение базового класса для вывода значений его членов в этом производном классе?
Это что-то вроде смены заголовка? Как это:
ostream& operator<<(ostream& osObject, const Airplane& myAirplane): operator<<Vehicle