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;
}