Cześć!
Piszę program, który ma klasę Samochód i Rower. Obie te klasy dziedziczą z klasy Pojazd. Chce wyświetlić składowe danej klasy. Chciałem przeładować operator<<. Mam jednak z tym spory problem, po przeszukaniu zagranicznych stron udało mi się napisać coś takiego.
Plik Pojazd.h
class Pojazd
{
public:
friend std::ostream& operator<< (std::ostream& o, Pojazd const& b);
virtual void printOn(std::ostream& o) const = 0;
};
Plik Pojazd.cpp
inline std::ostream& operator<< (std::ostream& o, Pojazd const& b)
{
b.printOn(o);
return o;
}
Plik Samochod.h
class Samochod : public PojazdSilnikowy
{
public:
virtual void printOn(std::ostream& o) const;
};
Plik Samochod.cpp
void Samochod::printOn(ostream &o) const
{
cout << "Model " << model << "Kolor " << kolor; //nie jestem pewien czy to dobrze wypełniam
}
Dla klasy Rower robię analogicznie co dla klasy Samochód
Plik main.cpp
samochod1.printOn() // tutaj nie wiem co wpisac do nawiasu aby wyświetliło parametry