﻿#include <iostream>
using namespace std;

class Pojazd {
public:
    string marka;
    string tablicaRejestracyjna;
    double ciezar;
    Pojazd(string m, string t, double c) :marka(m), tablicaRejestracyjna(t), ciezar(c) {
        cout << "dziala konstruktor klasy Pojazd" << endl;
    };
    ~Pojazd() {
        cout << "dziala destruktor klasy Pojazd" << endl;
    }
    void toString() { cout << "\nklasa Pojazd: marka: " << marka << "\nrejestracja: " << tablicaRejestracyjna << "\nciezar: " << ciezar << endl << endl; };
};

class Samochod : public Pojazd {
public:
    int iloscKol;
    void zatrab() { cout << "\nklasa Samochod: trabie!!!" << endl; };
    Samochod(string m, string t, double c, int i) :Pojazd(m, t, c), iloscKol(i) {
        cout << "dziala konstruktor klasy Samochod" << endl;
    }
    ~Samochod() {
        cout << "dziala destruktor klasy Samochod" << endl;
    }
    void toString() { Pojazd::toString(); cout << "klasa Samochod: ilosc kol: " << iloscKol << endl << endl; };
};

class SamochodOsobowy : public Samochod {
public:
    // kombi, sedan, van
    string typNadwozia;
    SamochodOsobowy(string m, string t, double c, int i, string ty) :Samochod(m, t, c, i), typNadwozia(ty) {
        cout << "dziala konstruktor klasy SamochodOsobowy" << endl;
    }
    ~SamochodOsobowy() {
        cout << "dziala destruktor klasy SamochodOsobowy" << endl;
    }
    void toString() { Samochod::toString(); cout << "klasa SamochodOsobowy: typ nadwozia: " << typNadwozia << endl << endl; };
};

int main()
{
    SamochodOsobowy samochodOsobowy("opel", "LZD1234", 500.0, 4, "kombi");
    samochodOsobowy.zatrab();
    samochodOsobowy.toString();

}

