Вопросы с тегом «smart-pointer»

11
Зачем собирать мусор, если есть умные указатели
В наши дни так много языков собирают мусор. Это даже доступно для C ++ третьими лицами. Но в C ++ есть RAII и умные указатели. Так какой смысл использовать сборщик мусора? Это делает что-то дополнительное? И в других языках, таких как C #, если все ссылки обрабатываются как интеллектуальные указатели …

9
std :: shared_ptr в крайнем случае?
Я просто смотрел трансляции "Going Native 2012" и заметил обсуждение std::shared_ptr. Я был немного удивлен, услышав несколько отрицательный взгляд Бьярне на std::shared_ptrего комментарий о том, что его следует использовать в качестве «последнего средства», когда время жизни объекта не определено (что, я считаю, по его мнению, должно быть нечастым случаем). Кто-нибудь …

1
raw, weak_ptr, unique_ptr, shared_ptr и т. д. Как правильно их выбрать?
В C ++ есть много указателей, но, если честно, через 5 лет или около того в программировании на C ++ (особенно с Qt Framework) я использую только старый необработанный указатель: SomeKindOfObject *someKindOfObject = new SomeKindOfObject(); Я знаю, что есть много других «умных» указателей: // shared pointer: shared_ptr<SomeKindofObject> Object; // unique …

5
Почему Java / C # не может реализовать RAII?
Вопрос: Почему Java / C # не может реализовать RAII? Пояснение: я знаю, что сборщик мусора не является детерминированным. Таким образом, при использовании текущих возможностей языка метод Dispose () объекта не может быть вызван автоматически при выходе из области видимости. Но можно ли добавить такую ​​детерминистическую функцию? Мое понимание: Я …

5
C ++: должен ли класс владеть или соблюдать свои зависимости?
Скажем, у меня есть класс, Foobarкоторый использует (зависит от) класса Widget. В Widgetстарые добрые времена wolud объявлялся как поле в Foobarили, может быть, как умный указатель, если требовалось полиморфное поведение, и он был бы инициализирован в конструкторе: class Foobar { Widget widget; public: Foobar() : widget(blah blah blah) {} // …

3
Будет ли разрушение большого списка переполнять мой стек?
Рассмотрим следующую реализацию односвязного списка: struct node { std::unique_ptr<node> next; ComplicatedDestructorClass data; } Теперь предположим, что я перестал использовать некоторый std::unique_ptr<node> headэкземпляр, который затем выходит из области видимости, вызывая вызов его деструктора. Будет ли это удар по моему стеку для достаточно больших списков? Справедливо ли предположить, что компилятор будет выполнять …

1
Разработка хранилища Key / Value с портированием на современный C ++
Я разрабатываю сервер базы данных, похожий на Cassandra. Разработка была начата в C, но все стало очень сложно без классов. В настоящее время я перенес все на C ++ 11, но я все еще изучаю "современный" C ++ и у меня есть сомнения по поводу многих вещей. База данных будет …

4
Является ли недетерминированное управление ресурсами утечкой?
Из того, что я вижу, есть две распространенные формы управления ресурсами: детерминированное уничтожение и явное. Примерами первых могут быть деструкторы и интеллектуальные указатели C ++ или подпрограмма DESTROY в Perl, а вторым примером может служить парадигма Ruby «блоки для управления ресурсами» или интерфейс IDispose .NET. Более новые языки, кажется, выбирают …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.