Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Weak ptr


Rekomendowane odpowiedzi

Opublikowano

Jak sięnim posługiwać, jeśli chcę pobrać z niego jakąś daną np. wyświetlić i muszę użyć odpowiedniej metody do tego, ale on nie ma zdefiniowanego "->"

 

to przeciążyć go i za każdym razem sprawadzać weak pointer do shared pointer i wypisywać? tj. shared = weak.lock() ?

Mógłby ktoś pokazać jakiś przykład, bo trochę nie wiem jak to zrobić żeby jakoś to wyglądało :D.


pl ;)

Opublikowano

weak_ptr służy przede wszystkim do przechowywania wskaźnika na obiekt, którego właścicielem jest jakiś smart_ptr, bez powiększania licznika referencji. Aby móc z niego skorzystać należy najpierw sprawdzić, czy obiekt nadal istnieje przy pomocy expired() czy lock() i sprawdzeniu czy otrzymany shared_ptr jest pusty.

Dobrym przykładem użycia jest na przykład jakiś cache obiektów ostatnio używanych, które mogą ale nie muszą istnieć. Innym przykładem jest rozbijanie zależności, kiedy jakiś obiekt posiada shared_ptr na inny obiekt, który zaś chciałby posiadać shared_ptr na ten pierwszy. W takim układzie wystarczy, że jeden z nich będzie typu weak_ptr.

 

Przykład użycia weak_ptr jako cache: https://channel9.msdn.com/Events/GoingNative/2013/My-Favorite-Cpp-10-Liner

YOU MUST DIE

- Ganon, Koridai

Opublikowano

@mirraseq

Przecież pokazałem tylko ogólny zarys tego, jak można używać metod, oczywiście że powinno się najpierw sprawdzić, czy ten wskaźnik nadal na coś istniejącego wskazuje, jest kilka sposobów, można łapać std::bad_weak_ptr, sprawdzać ifem i zapewne wiele więcej

Bot do gry NosTale:


[bOT] NosBota 1.3v

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...