Dana jest następująca definicja klasy Controller
class Controller {
int Num;
string Status;
vector<weak_ptr<Controller>> others;
public:
explicit Controller(const int i) { }
~Controller() { }
void CheckStatus() const { }
};
Powyższa klasa opisuje sterownik, który musi komunikować się ze wszystkimi
pozostałymi w celu sprawdzenia ich stanu. Komunikacja odbywa się za pomocą
wskaźników w wektorze others
(o długości o 1 mniejszej niż liczba
sterowników).
Uzupełnij funkcje klasy. Konstruktor inicjalizuje pole Num
na
wartość zadaną parametrem i
oraz pole Status
na
wartość "On"
. Destruktor wypisuje komunikat o zwolnieniu pamięci
danego kontrolera. Funkcja CheckStatus()
, iterując po wektorze
others
, sprawdza i wypisuje stan wszystkich pozostałych sterowników
(poza aktualnym).
Funkcja main()
:
n
n
obiektów typu Controller
i umieszcza
wskaźniki do nich kolejno w wektorze typu shared_ptr<Controller>
others
poszczególnych sterowników o wskaźniki
do wszystkich pozostałych kontrolerów.CheckStatus