Reference Counter

0

Witam! Potrzebuję pomocy przy zrobieniu zliczania referencji w moim kodzie. Nie mam pojęcia jak się za to zabrać.

https://pastebin.com/w42dRZ8f

https://pastebin.com/3ag2EQZT

https://pastebin.com/EqceapbE

0

Musisz zrobić zmienną statyczną i za każdym razem jak będziesz tworzyć obiekt to tą zmienna inkrementujesz a w destruktorze ja dekrementujesz

0

Czyli tylko w konstruktorach robię inkrementacje? A do destruktora dopisuję dekrementację i to wszystko?

0

Chcesz zliczać ilość obiektów prawda?
No to robisz sobie zmienną, która jest statyczna(czyli taka sama dla wszystkich obiektów).
Chcesz za każdym razem kiedy tworzy się obiekt dodawać ten obiekt do ilości, więc moim zdaniem najlepiej w konstruktorze,
Kiedy obiekt przestanie istnieć , chcesz go odjąć go od ilość obiektów, więc moim zdaniem najlepiej w destruktorze.

0

Zastosuj w implementacji zliczanie odwołana (ang. reference counting). tyle wiem :/ ... po wrzuceniu inkrementacji do konstruktorów i dekrementacji do destruktora, wartość refCountera to 3. Czyli liczy w ten sposób ilość stworzonych obiektów. Ale chyba nie o to chodzi. Swoją drogą czemu wyrzuca w ten sposób ilość stworzonych obiektów skoro inkrementacja następuje przy jego tworzeniu, a dekrementacja przy usuwaniu obiektu, więc nie powinien wyrzucić za każdym razem 0?

0

Nie powinny, za każdym razem pokazywać zero. Pierwszy raz spotykam się z takim terminem jak: "reference counting" i dlatego myślałem, że schodzi o zliczanie obiektów danej klasy, ale jednak to nie o to chodzi.

Szczur son napisał(a):

Swoją drogą czemu wyrzuca w ten sposób ilość stworzonych obiektów skoro inkrementacja następuje przy jego tworzeniu, a dekrementacja przy usuwaniu obiektu, więc nie powinien wyrzucić za każdym razem 0?

Na pewno używałeś destruktorów?

Zresztą źle Ci powiedziałem, a w internecie znalazłem coś takiego:
http://cpp0x.pl/dokumentacja/standard-C++11/shared_ptr/1523
https://pl.wikipedia.org/wiki/Od%C5%9Bmiecanie_pami%C4%99ci

Może to Ci trochę przybliży temat

0

Już i tak nie mam za bardzo ani siły ani czasu dopisać do tego shared pointera :/, ale dzięki za pomoc

0

W konstruktorze zwiększasz, w destruktorze zmniejszasz, ale co konstruktorem przenoszącym (C++11)?

1 użytkowników online, w tym zalogowanych: 0, gości: 1