Utworzenie listy jednokierunkowej z kilku klas - dziedziczenie

0

Dostałem polecenie, aby stworzyć 2 klasy bazowe, które zawierają pola typu protected. Każda klasa bazowa zawiera wskaźnik nast.
Nie bardzo rozumiem sformułowanie: aby do każdego typu danych stworzyć listę jednokierunkową. Do tworzenia elementów listy mam wykorzystać konstruktory domyślne.

#include <iostream>
#include <string>
using namespace std;

class silnik
{
protected:
    double moc;
    double wymiar;
   
public:
    silnik():moc(0), wymiar(0){}					//konstruktor domyślny
	silnik(double m_moc, double w_wymiar);			//konstruktor z argumentami
	silnik(silnik& mk);								//konstruktor kopiujący
	int id;
	void setmoc(double m_moc);						//seter moc
	void setwymiar(double w_wymiar);				//seter wymiar
	double getmoc();								//get moc
	double getwymiar();								//get wymiar

	void wypisz();									//wypisz pola
	silnik *next;
};
silnik::silnik(double m_moc, double w_wymiar){
	moc = m_moc;
	wymiar = w_wymiar;
}
silnik::silnik(silnik &mk){
	moc = mk.moc;
	wymiar = mk.wymiar;
}
void silnik::setmoc(double m_moc){
	moc = m_moc;
}
void silnik::setwymiar(double w_wymiar){
	wymiar = w_wymiar;
}
double silnik::getmoc(){
	return moc;
}
double silnik::getwymiar(){
	return wymiar;
}
void silnik::wypisz(){
	cout << "\nMoc = " << moc;
	cout << "\nWymiar = " << wymiar;
}

class samochod
{
protected:
	double cena;
	string rodzaj_silnika;
public:
	samochod():cena(0), rodzaj_silnika("brak"){}	//konstruktor
	samochod(double c_cena, string r_rodzaj);		//konstruktor z argumentami
	samochod(samochod& mk);							//konstruktor kopiujący
	void setcena(double c_cena);					//seter cena
	void setrodzaj(string r_rodzaj);				//seter rodzaj_silnika
	double getcena();								//get cena
	string getrodzaj();								//get rodzaj_silnika
	void wypisz();									//wypisz
	samochod *nast;
};
samochod::samochod(double c_cena, string r_rodzaj){
	cena = c_cena;
	rodzaj_silnika = r_rodzaj;
}
samochod::samochod(samochod& mk){
	cena = mk.cena;
	rodzaj_silnika = mk.rodzaj_silnika;
}
void samochod::setcena(double c_cena){
	cena = c_cena;
}
void samochod::setrodzaj(string r_rodzaj){
	rodzaj_silnika = r_rodzaj;
}
double samochod::getcena(){
	return cena;
}
string samochod::getrodzaj(){
	return rodzaj_silnika;
}
void samochod::wypisz(){
	cout << "\nCena = " << cena;
	cout << "\nRodzaj silnika: " << rodzaj_silnika;
}

class cCzynnosci
    : public silnik, public samochod
{
public:
	silnik *head;
	cCzynnosci();
};
cCzynnosci::cCzynnosci(){
	head = NULL;
}

int main()
{
    return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1