Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Prosze napisac program w ktorum alokowana
- // dynamicznie pamiec dla tablicy znakowej
- // przechowujacej lanuch (nazwe towaru), a bedacej w czesci prywatnej klasy "towar"
- // Ponadto w tej klasie jest pole prywatne przechowujące ilosć obiektw tej klasy
- //czy ilosc towarow. We funkcji main jest tworozny obiekt tej klasy o nazwie
- //pierwszy inicjalizowany domyslnie lanuchem
- //jakis towar . Poza tym prosze utworzyc inny obiekt tej klasy o nazwie
- //drugi inicjalozwany lanuchem towar nr 2
- //Prose utworzyc kolejny obiekt tej klasy o nazwie trzeci,
- //W TEJ SAMEJ LINICJE, prosze go zainicjalizowac przy pomocy
- //drygiego obiektu tej klasy instrukcja, ktorej fragment ma postac
- //trzeci = pierwszy. Prosze wypisac przy pomoc odpowiednnej metody klasy
- //drukuj zawartosci dwoch obiektow z odpowiednim komentarzem
- #include <iostream>
- void problem_z_alokacja();
- void problem_z_alokacja() {
- std::cerr<< "Problem z alokacja pamieci "<<std::endl;
- };
- class towar
- {
- char *nazwa_towaru;
- public:
- towar();
- towar(char *);
- towar(const towar &);
- towar operator=(towar &);
- static int ilosc;
- ~towar();
- void drukuj();
- };
- int towar::ilosc = 0;
- towar::towar()
- {
- nazwa_towaru = new char[20];
- std::set_new_handler(problem_z_alokacja);
- strcpy(nazwa_towaru, "jakis towar");
- ilosc++;
- }
- towar::towar(char *n)
- {
- nazwa_towaru = new char[strlen(n) + 1];
- std::set_new_handler(problem_z_alokacja);
- strcpy(nazwa_towaru, n);
- };
- towar::towar(const towar&t) {
- nazwa_towaru = new char[strlen(t.nazwa_towaru) + 1];
- std::set_new_handler(problem_z_alokacja);
- strcpy(nazwa_towaru, t.nazwa_towaru);
- };
- towar towar::operator=(towar &t) {
- if(this == &t) return *this;
- delete[] nazwa_towaru;
- nazwa_towaru = new char[strlen(t.nazwa_towaru) + 1];
- std::set_new_handler(problem_z_alokacja);
- strcpy(nazwa_towaru, t.nazwa_towaru);
- return *this;
- }
- towar::~towar() {
- delete[] nazwa_towaru;
- ilosc--;
- };
- void towar::drukuj() {
- std::cout<<"Nazwa towaru: "<<nazwa_towaru<<std::endl;
- }
- int main()
- {
- towar pierwszy;
- towar drugi("towar nr 2");
- towar trzeci = pierwszy;
- pierwszy.drukuj();
- drugi.drukuj();
- trzeci.drukuj();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement