Abstrakcyjny typ danych, który symuluje wskaźnik, jednocześnie zapewniając dodatkowe funkcje, takie jak automatyczne wyrzucanie elementów bezużytecznych lub sprawdzanie granic
Pytanie naprawdę pasuje do tytułu: jestem ciekawy, jaki jest techniczny powód tej różnicy, ale także uzasadnienie? std::shared_ptr<void> sharedToVoid; // legal; std::unique_ptr<void> uniqueToVoid; // ill-formed;
Powiedzmy, że mam klasę z metodą, która zwraca shared_ptr. Jakie są możliwe zalety i wady zwrotu na podstawie referencji lub wartości? Dwie możliwe wskazówki: Wczesne niszczenie obiektów. Jeśli shared_ptrzwrócę odwołanie by (const), licznik odwołań nie zostanie zwiększony, więc ponoszę ryzyko usunięcia obiektu, gdy wyjdzie on poza zakres w innym kontekście …
Jaka jest najlepsza metoda przekazywania a shared_ptrtypu pochodnego do funkcji, która przyjmuje shared_ptrtyp podstawowy? Generalnie przekazuję shared_ptrje jako odniesienie, aby uniknąć niepotrzebnych kopii: int foo(const shared_ptr<bar>& ptr); ale to nie działa, jeśli spróbuję zrobić coś takiego int foo(const shared_ptr<Base>& ptr); ... shared_ptr<Derived> bar = make_shared<Derived>(); foo(bar); mógłbym użyć foo(dynamic_pointer_cast<Base, Derived>(bar)); …
Pan Lidström i ja pokłóciliśmy się :) Pan Lidström twierdzi, że konstrukcja shared_ptr<Base> p(new Derived);nie wymaga, aby Base miał wirtualnego destruktora: Armen Tsirunyan : "Naprawdę? Czy shared_ptr wyczyści się poprawnie? Czy mógłbyś w tym przypadku zademonstrować, jak można zaimplementować ten efekt?" Daniel Lidström : „ Shared_ptr używa własnego destruktora do …
To jest trochę dwuczęściowe pytanie, dotyczące atomowości std::shared_ptr: 1. O ile wiem, std::shared_ptrjest to jedyny inteligentny wskaźnik w <memory>tym atomowym. Zastanawiam się, czy jest std::shared_ptrdostępna nieatomowa wersja programu (w środku nic nie widzę <memory>, więc jestem również otwarty na sugestie spoza standardu, jak te w Boost). Wiem, że boost::shared_ptrjest również …
Czy auto_ptr zostanie wycofane w nadchodzącym standardzie C ++? Czy do przeniesienia własności należy użyć unique_ptr zamiast shared_ptr? Jeśli unique_ptr nie znajduje się w standardzie, czy muszę zamiast tego użyć shared_ptr?
Cześć Zadałem dziś pytanie o to, jak wstawiać różne typy obiektów w tej samej tablicy wektorowej, a mój kod w tym pytaniu był gate* G[1000]; G[0] = new ANDgate() ; G[1] = new ORgate; //gate is a class inherited by ANDgate and ORgate classes class gate { ..... ...... virtual …
Nie jestem przyzwyczajony do używania weak_ptri mam do czynienia z dość mylącą sytuacją. Używam aktualizacji Intel XE 2019 Composer 5 ( pakiet 2019.5.281 ) w połączeniu z Visual Studio 2019 ver. 16.2.5 . Kompiluję w wersji 64-bitowej. Używam standardowego C ++ 17 . Oto kod mojego rozwiązania szczytowego: #include <memory> …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.