Lab 2

  1. Skompiluj przy użyciu make i uruchom program: źródła
  2. Odkomentuj w plikach log.h, log.cpp, main.cpp linie oznaczone "zad2". Czemu kod się nie kompiluje? Rozbuduj klasę Log tak, aby kod kompilował się bez błędów.
  3. Dlaczego dla niektórych obiektów konstruktor uruchamia się przed rozpoczęciem działania programu, a destruktor po jego zakończeniu?
  4. W klasie Log pole (składnik) m_id nie powinno zmieniać się przez całe "życie" danej instancji logu. Dodaj słowo kluczowe const do definicji m_id. Zmodyfikuj konstruktory, żeby program budował się bez błędów.
  5. W procedurze main utwórz dodatkowe instancje klasy Log, alokowane tak samo jak oryginały (stos/sterta), będące kopiami instancji log oraz p_log. (podpowiedź: należy dodać do klasy Log odpowiedni konstruktor..)
  6. Dla ambitnych (przyda się na następnych laboratoriach i projektach): utwórz klasę RedundantnyLog. Instancja tej klasy powinna przechowywać zmienną ilość instancji klasy Log i pozwalać na ich dodawanie w trakcie działania programu.