Mój kod:
MAIN:
#include <iostream>
using namespace std;
#include "statki.h"
int main()
{
Zaglowiec z1("Fryderyk Chopin","3Oceans",4,27.5);
z1.show();
Parowiec p1("SS Soldek",200,3,"B33",30.7);
p1.show();
Kontenerowiec k1("Emma Marks",170.790,170.500);
k1.show();
Lotniskowiec l1("Nimitz",100.000,332.8,"2 reaktory atomowe o mocy 280,000 KM");
l1.show();
return 0;
}
statki.h:
#include <iostream>
using namespace std;
class Zaglowiec
{
private:
string nazwa;
string rodzajZagli;
int liczbaMasztow;
float wysokoscNajwMasztu;
public:
Zaglowiec(string,string,int,float);
~Zaglowiec();
void load();
void show();
};
class Parowiec
{
private:
string nazwa;
int liczbaPasazerow;
int liczbaKotlow;
string rodzajKotlow;
float cisnienieParyDolotowej;
public:
Parowiec(string,int,int,string,float);
~Parowiec();
void load();
void show();
};
class Kontenerowiec
{
private:
string nazwa;
double pojemnoscRejestrowa;
double pojemnoscLadunkowa;
public:
Kontenerowiec(string,double,double);
~Kontenerowiec();
void load();
void show();
};
class Lotniskowiec
{
private:
string nazwa;
double wypornosc;
float dlugoscPasaStartowego;
string rodzajNapedu;
public:
Lotniskowiec(string,double,float,string);
~Lotniskowiec();
void load();
void show();
};
statki.cpp:
#include <iostream>
using namespace std;
#include "statki.h"
//Zaglowiec:
Zaglowiec::Zaglowiec(string n,string rZ,int lM,float wNM)
{
cout << endl;
nazwa = n;
rodzajZagli = rZ;
liczbaMasztow = lM;
wysokoscNajwMasztu = wNM;
}
Zaglowiec::~Zaglowiec()
{
cout << endl << "Destruktor#1: Zaglowiec..." << endl;
}
void Zaglowiec::load()
{
cout << "Podaj Dane Zaglowca: " << endl;
cout << "#Nazwa#: ";
cin >> nazwa;
cout << "#Rodzaj Zagli#: ";
cin >> rodzajZagli;
cout << "#Liczba Masztow#: ";
cin >> liczbaMasztow;
cout << "#Wysokosc Najwiekszego Masztu#: ";
cin >> wysokoscNajwMasztu;
}
void Zaglowiec::show()
{
cout << "Dane Zaglowca: " << endl;
cout << "Nazwa: " << nazwa << endl;
cout << "Rodzaj Zagli: " << rodzajZagli << endl;
cout << "Liczba Masztow: " << liczbaMasztow << endl;
cout << "Wysokosc Najwiekszego Masztu: " << wysokoscNajwMasztu << endl;
}
//Parowiec:
Parowiec::Parowiec(string n,int lP,int lK,string rK,float cPD)
{
cout << endl;
nazwa = n;
liczbaPasazerow = lP;
liczbaKotlow = lK;
rodzajKotlow = rK;
cisnienieParyDolotowej = cPD;
}
Parowiec::~Parowiec()
{
cout << endl << "Destruktor#2: Parowiec..." << endl;
}
void Parowiec::load()
{
cout << "Podaj Dane Parowca: " << endl;
cout << "#Nazwa#: ";
cin >> nazwa;
cout << "#Liczba Pasazerow#: ";
cin >> liczbaPasazerow;
cout << "#Liczba Kotlow#: ";
cin >> liczbaKotlow;
cout << "#Rodzaj Kotlow#: ";
cin >> rodzajKotlow;
cout << "#Cisnienie Pary Dolotowej#: ";
cin >> cisnienieParyDolotowej;
}
void Parowiec::show()
{
cout << "Dane Parowca: " << endl;
cout << "Nazwa: " << nazwa << endl;
cout << "Liczba Pasazerow: " << liczbaPasazerow << endl;
cout << "Liczba Kotlow: " << liczbaKotlow << endl;
cout << "Rodzaj Kotlow: " << rodzajKotlow << endl;
cout << "Cisnienie Pary Dolotowej: " << cisnienieParyDolotowej << endl;
}
//Kontenerowiec:
Kontenerowiec::Kontenerowiec(string n,double pR,double pL)
{
cout << endl;
nazwa = n;
pojemnoscRejestrowa = pR;
pojemnoscLadunkowa = pL;
}
Kontenerowiec::~Kontenerowiec()
{
cout << endl << "Destruktor#3: Kontenerowiec..." << endl;
}
void Kontenerowiec::load()
{
cout << "Podaj Dane Kontenerowca: " << endl;
cout << "#Nazwa#: ";
cin >> nazwa;
cout << "#Pojemnosc Rejestrowa#: ";
cin >> pojemnoscRejestrowa;
cout << "#Pojemnosc Ladunkowa#: ";
cin >> pojemnoscLadunkowa;
}
void Kontenerowiec::show()
{
cout << "Dane Kontenerowca: " << endl;
cout << "Nazwa: " << nazwa << endl;
cout << "Pojemnosc Rejestrowa: " << pojemnoscRejestrowa << endl;
cout << "Pojemnosc Ladunkowa: " << pojemnoscLadunkowa << endl;
}
//Lotniskowiec:
Lotniskowiec::Lotniskowiec(string n,double w,float dPS,string rN)
{
cout << endl;
nazwa = n;
wypornosc = w;
dlugoscPasaStartowego = dPS;
rodzajNapedu = rN;
}
Lotniskowiec::~Lotniskowiec()
{
cout << endl << "Destruktor#4: Lotniskowiec..." << endl;
}
void Lotniskowiec::load()
{
cout << "Podaj Dane Lotniskowca: " << endl;
cout << "#Nazwa#: ";
cin >> nazwa;
cout << "#Wypornosc#: ";
cin >> wypornosc;
cout << "#Dludosc Pasa Startowego#: ";
cin >> dlugoscPasaStartowego;
cout << "#Rodzaj Napedu#: ";
cin >> rodzajNapedu;
}
void Lotniskowiec::show()
{
cout << "Dane Lotniskowca: " << endl;
cout << "Nazwa: " << nazwa << endl;
cout << "Wypornosc: " << wypornosc << endl;
cout << "Dlugosc Pasa Startowego: " << dlugoscPasaStartowego << endl;
cout << "Rodzaj Napedu: " << rodzajNapedu << endl;
}
I w konsoli:
I mam pytanie co do destruktorów:
Dlaczego destruktory wykonują się na końcu a nie zaraz po wyświetleniu konstruktora ?? Moim zdaniem po każdym wyświetleniu informacji o danym statku powinien zaraz po wykonać się destruktor...
Dzięki za pomoc :)