【发布时间】:2012-01-15 17:58:18
【问题描述】:
所以这是我的一个大任务的一小部分,我只是不确定它的语法。
我有一个名为 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;
我还有一个派生自Vehicle 类的Airplane 类,它引入了一个新成员: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
【问题讨论】:
-
In operator
标签: c++ inheritance overriding overloading