„Biblioteka Sobczak Natalia


Download 69.33 Kb.
bet3/5
Sana05.01.2022
Hajmi69.33 Kb.
#219984
1   2   3   4   5
Bog'liq
Projekt Sobczak 10B

Etap 3. Użycie agregacji

  1. Zagnieżdżenie klas (tylko w polu prywatnym)

private: //czytelnik.h
class PESEL {
bool pesel_poprawny(const std::string pesel) {
if (pesel.size() != 11) {
return false;
}
if (pesel.find_first_not_of("0123456789") != std::string::npos) {
return false;
}

return true;


}
};

  1. Użycie mechanizmu przyjaźni

friend std::ostream & operator<<(std::ostream &os, const Biblioteka& biblioteka);

  1. Użycie konstruktorów (kopiującego, delegującego, domyślnego

Ksiazka::Ksiazka(const std::string &nazwa, const std::string &isbn, unsigned int wydanie, const std::string &autor,
const std::string &typDzialu) : nazwa(nazwa), isbn(isbn), wydanie(wydanie), autor(autor),
typ_dzialu(
typDzialu) { // ETAP 3 konstruktor delegujacy i jednoczesnie domyslny
++ilosc_ksiazek_wyprodukowanych_kiedykolwiek;
}

Ksiazka::Ksiazka(const Ksiazka &ksiazka) { // konstruktor kopiujacy


this->autor = ksiazka.autor;
this->isbn = ksiazka.isbn;
this->nazwa = ksiazka.nazwa;
this->typ_dzialu = ksiazka.typ_dzialu;
this->wydanie = ksiazka.wydanie;
++ilosc_ksiazek_wyprodukowanych_kiedykolwiek;
}

Ksiazka::~Ksiazka() {


--ilosc_ksiazek_wyprodukowanych_kiedykolwiek;

}

ParametryWyszukiwania::ParametryWyszukiwania(const std::optional &autor,


const std::optional &isbn,
const std::optional &nazwa,
const std::optional &wydanie) : autor(autor), isbn(isbn),
nazwa(nazwa),
wydanie(wydanie) {} //ETAP 3 konstruktor delegujacy
}

Biblioteka::~Biblioteka() { //ETAP 3 destruktor


if (this->czytelnicy != nullptr) {
delete[] this->czytelnicy;
this->czytelnicy = nullptr;
}

if (this->ksiazki != nullptr) {


delete[] this->ksiazki;
this->ksiazki = nullptr;
}

if (this->wypozyczenia != nullptr) {


delete[] this->wypozyczenia;
this->wypozyczenia = nullptr;
}
}

  1. Użycie specyfikatora deklaracji auto

Wypozyczenie *Bibliotekarz::wypozycz_ksiazke(Ksiazka *ksiazka, Czytelnik *czytelnik) {
auto *nowe_wypozyczenie = new Wypozyczenie(ksiazka, czytelnik);
biblioteka->dodaj_wypozyczenie(nowe_wypozyczenie);
return nowe_wypozyczenie;
}


Download 69.33 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling