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():
nn 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