В моем базовом классе Animal есть оператор вставки переопределения с информацией о местоположении X & Y животного. Производный класс Bird нужно распечатать X & Y & Z, так как он может летать. Я успешно вызвал оператор базовых классов <<, но не могу добавить информацию о местоположении Z, что я здесь не так делаю? </p>
// BASE CLASS OPERATOR
ostream& operator<<(ostream &os, Animal &animal) {
ostringstream oss;
oss << "Id: " << animal.Id
<< "\nAge: " << animal.age
<< "\nStatus: " << animal.status
<< "\nLocation: " << animal.locX << ", " << animal.locY;
os << oss.str();
return os;
}
// DERIVED CLASS OPERATOR
ostream &operator<<(ostream &os, const Bird bird) {
const Animal *birdPtr = &bird;
os << "Bird" << endl; // THIS IS NOT PRINTING
os << birdPtr;
os << ", " << bird.locZ; //THIS IS NOT PRINTING
return os;
}
Фактический результат:
Id: 1
Age: 0
Status: 1
Location: 0, 0
Ожидаемый результатдля птицы:
Bird
Id: 1
Age: 0
Status: 1
Location: 0, 0, 0