これは私が持っている大きな課題のほんの一部ですが、私はこれについての構文が不明です。C++、派生クラスでBaseクラスのオーバーロードされた抽出演算子を呼び出すにはどうすればよいですか?
私はこれらのメンバーがあるVehicle
という名前の基底クラス、持っている:(私は名前空間std
を使用していますint fuelAmt
とint fuelUsage
を)
)を
私は<<
オペレータをこのように、オーバーロード:
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
<<車両のためにあなたが書き込み、その魔法を動作しますcout。 osObjectに書き込む必要があります。 – user763305