Jak to zostało napisane here Qt do tej pory ma 8 specjalnych klas inteligentnych wskaźników. Wygląda na to, że wszystko, czego będziesz potrzebować. Jednakże, aby użyć dowolnego z tych inteligentnych wskaźników, twoja klasa musi pochodzić z QObject, co nie zawsze jest wygodne. Czy istnieją inne implementacje inteligentnych wskaźników w Qt, które działają z dowolnymi klasami?Inteligentne wskaźniki w Qt
Odpowiedz
Wiele klas Qt pochodzą z QObject, i choć niektóre z wbudowanych w klasach inteligentnych wskaźnik związane są QObject (lub QSharedData), przy czym QSharedPointer i QScopedPointer szablony pojawiają się w celu umożliwienia wskaźniki do niczego.
Poza tym, znajdziesz niektóre smart pointer templates w Boost:
- scoped_ptr - Proste wyłączną własność pojedynczych obiektów. Nieoprawione.
- scoped_array - Proste wyłączne prawo własności do tablic. Nieoprawione.
- shared_ptr - Własność obiektu jest wspólna dla wielu wskaźników.
- shared_array - Własność macierzy współużytkowana wśród wielu wskaźników.
- weak_ptr - Nie posiadających uprawnień obserwatorów obiektu należącego do shared_ptr.
- intrusive_ptr - Współwłasność własna obiektów z osadzoną liczbą odwołań.
To prawda. STL ma również auto_ptr. Pytanie dotyczy QT. – alexkr
Praktycznie wszystko w Qt przy użyciu QObject jako bazy, więc jeśli chcesz coś, co działa poza tym, Zwiększ jedno miejsce do szukania :) –
Wow, nadal używam C++ jak "C z klasami" (to C++ około 1990). To działa, wszystkie te brzydkie, nieczytelne, inteligentne wskaźniki sprawiają, że jestem chory. – Lothar
- 1. Inteligentne wskaźniki i zasady alokacji lista parametrów
- 2. C++ 11 inteligentne wskaźniki i polimorfizm
- 3. Czy inteligentne wskaźniki wykluczają potrzebę budowy dwufazowej?
- 4. Inteligentne wskaźniki w pojemniku takim jak std :: vector?
- 5. W jaki sposób powinny być rzucane inteligentne wskaźniki?
- 6. Czy inteligentne wskaźniki łamią zasadę minimalizowania #include w plikach nagłówkowych?
- 7. C++ 11 inteligentne wskaźniki zawsze zamiast nowych/usuwać?
- 8. Inteligentne zakładki w vim
- 9. C++ 11 Inteligentne użycie wskaźnika
- 10. Inteligentne typedefs
- 11. Czy inteligentne wskaźniki mogą selektywnie ukrywać lub przekierowywać wywołania funkcji do obiektów, które owijają?
- 12. Wyłącz "inteligentne zachowanie" w Matlab
- 13. Grupowanie "inteligentne" z LINQ
- 14. Path() - inteligentne kolorowe segmenty
- 15. Inteligentne sprawdzania pisowni
- 16. Co to są mocne wskaźniki i słabe wskaźniki
- 17. JavaScript inteligentne zaokrąglanie
- 18. Przyrostowe wskaźniki
- 19. Dlaczego wskaźniki zakresu w zwiększeniu
- 20. Czy są wskaźniki w javascript?
- 21. const i wskaźniki w C
- 22. Wskaźniki i pętle w C
- 23. Plik/bazowe wskaźniki w zespole
- 24. Wskaźniki funkcji/delegatów w Javie?
- 25. Zwiększanie char wskaźniki w C++
- 26. Co robią inteligentne karty w WebStorm/PHPStorm?
- 27. Inteligentne drukowanie liczb całkowitych w fortran90
- 28. Jak wyłączyć inteligentne cytaty w Jekyll?
- 29. Inteligentne refaktoryzacja nazw plików w Eclipse + Android?
- 30. Właściwa inicjalizacji inteligentne kursory tablicy
W rzeczywistości, dla większości z tych wskaźników, które nie muszą pochodzić z QObject, nie sądzę. Jest kilka innych rzeczy, które twoje klasy będą musiały obsłużyć lub wyprowadzić z niektórych innych klas Q, dla niektórych z nich. AFAIK, tylko QPointer potrzebuje, aby twoja klasa pochodziła z QObject. To powiedziawszy, wymagają one użycia Qt w twoim projekcie. –