Вопросы по теме 'smart-pointers'

лучшая практика при возврате интеллектуальных указателей
Как лучше всего возвращать интеллектуальный указатель, например boost :: shared_ptr? Должен ли я стандартно возвращать интеллектуальный указатель или базовый необработанный указатель? Я родом из C #, поэтому всегда возвращаю умные указатели, потому...
25834 просмотров
schedule 17.10.2022

Как реализовать интеллектуальный указатель, который можно создать с помощью void?
Некоторые шаблоны интеллектуальных указателей, такие как boost :: shared_ptr, могут быть созданы с void для хранения произвольного объекта: http://www.boost.org/doc/libs/1_39_0/libs/smart_ptr/sp_techniques.html#pvoid Ниже представлена...
1832 просмотров
schedule 09.11.2023

Условное создание экземпляра шаблона во время выполнения
У меня есть класс шаблона template <class T> class myClass { public: /* functions */ private: typename T::Indices myIndices; }; Теперь в моем основном коде я хочу создать экземпляр класса шаблона в...
907 просмотров
schedule 12.03.2023

Достоинства / недостатки автоматических указателей
Каковы преимущества и недостатки использования автоматических указателей (auto_ptr) по сравнению с обычными указателями? Я слышал, что он автоматически освобождает память, но почему он не используется часто?
12650 просмотров
schedule 21.09.2023

должен ли std::auto_ptr‹›::operator = сбросить/освободить существующий указатель?
Я прочитал здесь о std::auto_ptr‹>:: оператор= Обратите внимание, однако, что объект с левой стороны не освобождается автоматически, когда он уже указывает на какой-либо объект. Вы можете явно сделать это, вызвав сброс функции-члена, прежде...
824 просмотров
schedule 19.03.2023

Можно ли использовать интеллектуальные указатели С++ вместе с malloc C?
Часть моего кода по-прежнему использует malloc вместо new . Причина в том, что я боюсь использовать new , потому что он выдает исключение, а не возвращает NULL , что я могу легко проверить. Оборачивать каждый вызов new в try{}catch(){} тоже...
16628 просмотров
schedule 30.01.2023

Следует ли библиотеке использовать интерфейс, использующий интеллектуальные указатели?
Я начинаю писать библиотеку и обдумываю ее интерфейс. Все предыдущие библиотеки, которые я написал, используют необработанные указатели (как внутри, так и в интерфейсе), и теперь я хочу попробовать библиотеку интеллектуальных указателей, которая...
770 просмотров
schedule 08.03.2022

Реализация умного указателя на C
Возможный дубликат: Умные указатели / безопасная память управление для C? У меня есть встроенное приложение, в котором я выделяю объект в динамической памяти и передаю его другим модулям. Я хочу создать умный указатель на этот...
4746 просмотров
schedule 26.01.2023

Пользовательские слабые/сильные опорные указатели
Я создаю свою собственную реализацию отношения слабого/сильного указателя ссылки, и я запутался в конфигурации. Когда у меня есть класс, содержащий сильную ссылку, и я хочу установить сильный указатель на другой класс, имеющий слабую ссылку, должен...
1700 просмотров

Слабая/сильная связь указателя ссылки
Я пытался написать свой собственный слабый/сильный указатель, но я не совсем понимаю взаимосвязь. Все, с чем я, кажется, сталкиваюсь, не проясняет и не объясняет, и довольно часто один документ противоречит тому, что говорит другой. Может ли...
6860 просмотров

Предотвращение взрыва заголовка в C++ (или C++0x)
Скажем, с общим кодом, например следующим: y.hpp: #ifndef Y_HPP #define Y_HPP // LOTS OF FILES INCLUDED template <class T> class Y { public: T z; // LOTS OF STUFF HERE }; #endif Теперь мы хотим иметь возможность...
1450 просмотров
schedule 13.06.2023

Простое руководство по использованию указателей
Возможный дубликат: Каковы препятствия на пути к пониманию указателей и что можно сделать, чтобы их преодолеть? Что такое умный указатель и когда его следует использовать? Я изучаю C ++, и у меня были большие трудности с изучением...
414 просмотров
schedule 07.07.2022

Передача unique_ptr функциям
Я пытаюсь «модернизировать» какой-то существующий код. У меня есть класс, который в настоящее время имеет переменную-член «Device * device_». Он использует new для создания экземпляра в некотором коде инициализации и имеет "delete device_" в...
33870 просмотров
schedule 22.03.2022

Умные указатели и это в длительном методе
есть связанные вопросы, такие как умные указатели + это считается вредным? , но они не обрабатывают мои кейс. Все эти вопросы касаются раскрытия необработанного указателя this в случае подсчета ссылок интеллектуальными указателями. Однако моя...
112 просмотров
schedule 28.12.2022

Можно ли вернуть ссылку на переменную-член, не являющуюся указателем, в качестве указателя?
Недавно я наткнулся на код C++, который выглядел так: class SomeObject { private: // NOT a pointer BigObject foobar; public: BigObject * getFoobar() const { return &foobar; } }; Я спросил программиста, почему...
1329 просмотров

Можно ли наследовать интеллектуальные указатели C ++ 11 и переопределять относительные операторы?
Согласно cppreference.com , std::shared_ptr предоставляет полный набор относительных операторов (==,! =, ‹ , ...), но семантика сравнения не указана. Я предполагаю, что они сравнивают базовые необработанные указатели с объектами, на которые есть...
4536 просмотров

Шаблон проектирования для обнаружения утечек памяти для интеллектуальных указателей с подсчетом ссылок
У нас есть собственный класс интеллектуальных указателей, который подсчитывается с использованием базовых AddRef и Release. Во время отладки я вижу, что многие объекты не выпускаются должным образом. Я могу видеть, какие объекты не выпускаются, но...
691 просмотров
schedule 11.10.2022

Есть ли ошибка в реализации GCC 4.7.2 оператора присваивания shared_ptr (шаблона)?
Мой вопрос касается реализации шаблона оператора присваивания shared_ptr в GCC 4.7.2, который, как я подозреваю, содержит ошибку. ПРИМЕЧАНИЕ 1: СТАНДАРТ C++11 Вот подпись шаблона оператора присваивания, о котором я говорю:...
1357 просмотров
schedule 25.09.2022

scoped_ptr право собственности
Возможный дубликат: Что такое умный указатель и когда его использовать? Я читал статью и нашел небольшой пример, демонстрирующий использование boost::scoped_ptr<T> : #include <cstdlib> #include <iostream>...
3057 просмотров
schedule 27.04.2022

Избегайте нарезки объектов для невиртуальных деструкторов
Я пишу код для интеллектуальных указателей в качестве упражнения. Используя онлайн-учебники ( 1 , 2 ) Я разработал обычный класс интеллектуальных указателей с подсчетом ссылок. Проблема в том, что я не могу понять следующее: когда...
760 просмотров
schedule 08.01.2024