17
Zajęcia 5: Rozbudowa projektu — cz, II
1. Modyfikacja i rozbudowa klasy Data Ola klasy Data wykonaj następujące czynności:
• Zastąp konstruktor bezparametrowy następującym konstruktorem:
Data(int d, int m, int r);
Ma on zainicjować wszystkie składowe klasy;
• Opracuj funkcję operatorową (globalną - zaprzyjaźnioną z klasą Data) wstawiania do strumienia wyjściowego. Zadaniem tej funkcji jest wyprowadzenie informacji o danym obiekcie klasy Data: ostream & opera to c« (ostream & wy, const Data & d);
• Stwórz funkcję operatorową (globalną - zaprzyjaźnioną z klasą Data) pobierania ze strumienia wejściowego. Zadaniem tej funkcji jest podobnie jak funkcji Wpisz O wprowadzenie informacji do danych składowych obiektu klasy Data:
istream & operator>>(istream & we. Data & d);
2. Modyfikacja i rozbudowa klasy Pracownik W klasie Pracownik wykonaj następujące czynności:
• Dodaj kolejne pole składowe: const int m_nIDZatrudnienia w części prywatnej klasy.
• Zmodyfikuj dane składowe tak aby m_pszlmie i m_pszNazwisko były wskaźnikami: char * m__pazlmie;
char * m_pszNazwisko;
• Utwórz konstruktor domyślny:
Pracownik (const char* im = 1 const char * naz =
int dzień - 1, int miesiąc = 1, int rok = 2000);
Zainicjuj dane składowe. Rezygnacja z tablic o stałej długości wymaga wykorzystania operatorów new i delete. Pamiętaj o unikalnym identyfikatorze zatrudnienia.
• W destruktorze umieść instrukcje zwalniające pamięć dla pól m_pszlmie i m_pszNazwisko.
• Zdefiniuj konstruktor kopiujący:
Pracownik(const Pracownik & wzór);
• Zdefiniuj operator przypisania dla klasy Pracownik:
Pracownik & operator-(const Pracownik & wzór);
• Zdefiniuj operator porównania w odniesieniu do klasy Pracownik, bool operator—(const Pracownik & wzór) const;
funkcja ma zwracać true gdy dane składowe obiektów są jednakowe, false w przeciwnym wypadku
• Globalną, zaprzyjaźnioną z klasą Pracownik funkcję operatorową wstawiania do strumienia wyjściowego. Zadaniem tej funkcji jest wyprowadzenie informacji o danym pracowniku. Działanie funkcji przetestuj na strumieniach:
ostream & operator«(ostream & wy, const Pracownik & p);
• Globalną, zaprzyjaźnioną z klasą Pracownik funkcję operatorową pobierania ze strumienia wejściowego. Zadaniem tej funkcji jest podobnie jak funkcji Wpisz () wprowadzenie informacji do danych składowych obiektu klasy. Działanie funkcji przetestuj na strumieniach:
istream & operator» (istream & we, Pracownik & p);
• Zmodyfikuj pozostałe funkcje, gdzie występuje potrzeba zainicjowania lub zmiany składowych m_pszlmie lubm_pszNazwisko.
Katedra Podstaw Elektroniki
'irn