Czy trzymać sf::RectangleShape w pamięci oraz inteligentne wskaźniki
Ostatnio zmodyfikowano dzisiaj: 9h » 17 min
skovv |
» 2025-10-28 20:31:58 Nie rozumiem, daj przykład |
|
skovv |
» 2025-10-28 20:31:59 Nie rozumiem, daj przykład |
|
tBane Temat założony przez niniejszego użytkownika |
» 2025-10-28 21:51:02 Kiedy stosować i kiedy nie stosować? int * a i jeszcze potrzebuję przerobić poniższą metodę na wskaźnik inteligentny, bo potrzebuję, by gdzie indziej zdefiniowany rect był przypisany do scrollbara - ma służyć za pole do scrollowania (gdzie może być kursor by scrolling kółka działał) class Scrollbar : ElementGUI { public: sf::IntRect _rect; sf::IntRect _slider; sf::IntRect * _scrollArea; int _deltaScroll; float _scrollStep; };
void Scrollbar::setScrollArea( sf::IntRect & rect, float scrollStep ) { _scrollArea = & rect; _scrollStep = scrollStep; }
|
|
skovv |
» 2025-10-28 22:08:28 No stosujesz ogółem kiedy potrzebujesz :D Ja np wskaźników używam gdy mam np inspektor który ma w sobie całe UI itp a wyświetlać ma dane wybranego obiektu. Obiekty w inspektorze się zmieniają, sama jego budowa itp nie także jeśli to obiekt ma się zmieniać to najlepiej użyć wtedy wskaźnika. Jeśli miałbym stały obiekt to najlepiej użyć normalnego obiektu. |
|
tBane Temat założony przez niniejszego użytkownika |
» 2025-10-28 22:09:29 Ale wcześniej pekfos pisał by używać inteligentnych wskaźników. |
|
pekfos |
» 2025-10-28 22:14:15 Skoro surowe wskaźniki istnieją to musi być jakiś powód. Tak więc kiedy stosować surowe wskaźniki? Wskaźniki inteligentne są zaimplementowane z użyciem surowych. Wystarczy? To że używasz inteligentnych, nie znaczy że masz nie używać zwykłych. Są sytuacje gdzie nawet musisz. Przykładowo masz std::unique_ptr<sf::Text> w swoich obiektach, ale chcesz je wszystkie wyświetlić pętlą. Na potrzeby wyświetlania zbierasz te wskaźniki w kontenerze std::vector<sf::Text*>. Tu musi być zwykły wskaźnik, bo nie możesz skopiować unique ptr (to by zaprzeczało jego unikalności). I chociaż jest to odniesienie do obiektu zarządzanego przez inteligentny wskaźnik, ten kontener jest utworzony tylko na potrzeby działania algorytmu wyświetlania i jest kasowany zaraz potem. W tym czasie żaden z tych obiektów nie będzie zwolniony, co jest wymagane dla poprawności. A po co miałbyś chcieć tworzyć kontener specjalnie po to? Na przykład by posortować napisy wcześniej by wyświetlały się spójnie w sytuacji gdy na siebie nachodzą. |
|
tBane Temat założony przez niniejszego użytkownika |
» 2025-10-28 22:18:47 Mhm... Czyli stosować inteligentne wskaźniki do pojedynczych obiektów, a do zbiorów stosować surowe? |
|
pekfos |
» 2025-10-28 22:23:32 Podałem przykład. Jeżeli wyciągnąłeś z tego ogólną regułę, to nic nie zrozumiałeś. |
|
| 1 2 3 « 4 » 5 |