Bu, sahip olduğum büyük bir ödevin küçük bir parçası, bunun sözdiziminden emin değilim.C++, Türetilmiş bir sınıftaki bir Base sınıfının aşırı yüklenmiş ekstraksiyon operatörünü nasıl ararım?
Bunları üyesi vardır Vehicle
adında bir temel sınıf vardır: int fuelAmt
ve int fuelUsage
)
(kullanıyorum ad std
)
Ben <<
operatör bu şekilde aşırı:
ostream& operator<<(ostream& osObject, const Vehicle& myVehicle)
{
cout << "Fuel Usage Rate: " << myVehicle.fuelUsage << endl
<< "Fuel Amount: " << myVehicle.fuelAmt << endl;
return osObject;
}
Daha sonra bu şekilde adlandırıyorum:
cout << Vehicle;
sonuç (örneğin) aşağıdaki gibidir:
Fuel Usage Rate: 10;
Fuel Amount: 50;
Ayrıca Vehicle
sınıfından türetilmiş bir Airplane
sınıfı, yeni bir elemanı getirmektedir: int numEngines
. İlk "Araç aşırı operatör sonuçlarını" arayacak ve sonra ne olursa olsun sonuçları Ben türetilmiş sınıftan yazdırmak için <<
operatör söylemek böylece
Airplane
sınıfta
<<
operatörünü aşırı nasıl ... Yani, burada demek ne:
Ben Airplane
sınıfta böyle çalışabilmesi için gereken:
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;
}
Nasıl bu türetilmiş sınıfta, üyelerinin değerlerini çıkışı taban sınıfı yürütme tetiklemek mı?
Başlık değiştirmek gibi bir şey midir? Bunun gibi: Aşağıdaki hakkında
ostream& operator<<(ostream& osObject, const Airplane& myAirplane): operator<<Vehicle
operatör olarak << için Araç çalışacak tek temel sınıf ve sanal sevk için operatöre < < var, nihayet
ve aşağıdakileri yapın cout. OsObject'e yazmalısın. – user763305