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

C++ с использованием scoped_ptr в качестве переменной-члена
Просто хотел мнения по вопросу дизайна. Если у вас есть класс C++, которому принадлежат другие объекты, будете ли вы использовать интеллектуальные указатели для достижения этой цели? class Example { public: // ... private:...
18608 просмотров
schedule 14.03.2024

Умные указатели — случаи, когда они не могут заменить необработанные указатели
HI, У меня есть этот запрос об умных указателях. Я слышал от одного из моих друзей, что умные указатели почти всегда могут заменить необработанные указатели. но когда я спросил его, каковы другие случаи, когда умные указатели не могут заменить...
1348 просмотров
schedule 10.06.2024

Передача права собственности на функцию с помощью std::unique_ptr
Я пытаюсь научиться использовать умные указатели и понимать право собственности. Когда я передаю auto_ptr функции по значению, функция становится исключительным владельцем этого указателя. Поэтому, когда функция завершает работу, она удаляет...
7445 просмотров
schedule 27.11.2023

Преобразование объектов базового класса в производный класс
Пару дней назад я спросил несколько разъяснения по наследованию , концепцию, которую я все еще пытаюсь понять. Вот следующий вопрос, так как я все еще сталкиваюсь с проблемами. В моем проекте у меня есть 2 типа объектов: рука и лицо, оба...
5280 просмотров

Руководство по использованию std::unique_ptr
Каковы рекомендации по использованию std::unique_ptr ? Конечно, не следует использовать его, когда указатель используется совместно с другими объектами, модулями. Но, может быть, есть какие-то другие рекомендации? для pImpl для указателя...
75 просмотров
schedule 28.10.2022

Итератор C++ со слабыми указателями на элементы контейнера
У меня есть общий контейнер дерева, и я хотел бы реализовать итератор для обхода его элементов. В основном контейнере я использовал общие указатели для соединения различных узлов дерева. Имеет ли смысл реализовывать итератор с использованием...
354 просмотров
schedule 01.11.2023

Почему std::unique_ptr имеет функцию-член get()?
Разве std::unique_ptr не предназначен для того, чтобы быть уникальным указателем на память, и никакой другой указатель не должен указывать на эту память? Тогда почему std:unique_ptr имеет функцию-член get() , которая возвращает необработанный...
601 просмотров
schedule 26.10.2022

Как вызвать функцию-член const другого класса через член std::unique_ptr
Читая о предложении добавить в стандартную библиотеку оболочку, распространяющую константу (№ документа N4388 ), я наткнулся на пример, приведенный в статье: #include <memory> #include <iostream> struct A { void bar() const...
593 просмотров

Поддерживается ли неявное преобразование из unique_ptr в необработанный указатель?
Я читал эффективное C ++ 3-е издание. На странице 70 автор говорит: Как и практически все классы интеллектуальных указателей, tr1::shared_ptr и auto_ptr также перегружают операторы разыменования указателя ( operator-> и operator* ),...
3570 просмотров

перегрузка функции шаблона шаблона
Я пытаюсь объявить функцию, которая проверяет, инициализирован ли интеллектуальный указатель. Я написал два варианта функции, которая действует на интеллектуальные указатели, одна функция шаблона действует на шаблоны, а другая действует на шаблон...
319 просмотров
schedule 27.11.2022

неожиданное поведение shared_pointer
Есть кусок кода: A.cpp class MySomeClass: public SomeClass { public: void specificMethod(); } class A { public: A::A(); std::shared_ptr< B > m_bObject; std::shared_ptr< MySomeClass > m_argument; } A::A() {...
77 просмотров
schedule 19.11.2023

Выделить массив char* с помощью boost::make_shared
Чтобы выделить массив char*, я бы обычно написал что-то вроде: char* arr = new char[size]; Как я могу добиться того же, используя boost::shared_ptr (или, возможно, boost::shared_array) и boost::make_shared? Мои предположения: 1)...
1411 просмотров

Как приводить трейт-объекты с помощью Arc‹Mutex‹››?
Я пытаюсь вызвать функцию, которая принимает указатель на Mutex некоторого типаж-объекта, и я хочу иметь возможность реализовать черту для Mutex этого типаж-объекта, чтобы можно было рассматривать Mutex как экземпляр типаж-объекта для...
1856 просмотров
schedule 07.03.2024

Интеллектуальные указатели C++ для объектов, содержащих необработанные указатели
У меня есть класс с элементом, который содержит необработанный указатель на другой объект, как показано ниже. Обратите внимание, что пример, который я упростил из моей реальной работы, вероятно, может работать, но я пытаюсь получить концептуальную...
699 просмотров
schedule 27.02.2024

Проблема с инициализацией ссылки в конструкторе
Псевдоопределение класса: Базовый виртуальный класс A: class A { public: virtual ~A(); virtual void doSomething() const = 0; }; Класс B, наследующий от A: class B : public A { public: void doSomething() {} const; }...
71 просмотров

Общие указатели, хранящиеся в векторе интеллектуальных указателей внутри другого объекта, хранящегося в общем указателе (Shareption)
В настоящее время я работаю над новым проектом со своей командой в Cpp, и мы решили попрощаться со старомодными необработанными указателями и попробовать умные указатели. Я действительно новичок в этом мире и решил попробовать несколько вещей,...
387 просмотров
schedule 11.10.2022

Как понять базовый адрес указателя интеллектуального указателя?
Я изучаю Udacity C++ Nanodegree, и в лекции об умных указателях есть что-то, что я считаю ошибкой или я что-то упускаю. Рассмотрим следующий пример: #include <iostream> #include <memory> #include <string> class MyClass {...
129 просмотров
schedule 20.03.2024

Нужно ли использовать unique_ptr вместо std::function
У меня есть фабрика, возвращающая функцию обработки данных class Factory { function<void(Data&)> build(); } Теперь я борюсь с тем, должен ли возвращаемый тип быть function<void(Data&)> или...
44 просмотров
schedule 08.11.2023