Вопросы по теме '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 просмотров
schedule
04.02.2024
Руководство по использованию 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 просмотров
schedule
06.06.2024
Поддерживается ли неявное преобразование из unique_ptr в необработанный указатель?
Я читал эффективное C ++ 3-е издание. На странице 70 автор говорит:
Как и практически все классы интеллектуальных указателей, tr1::shared_ptr и auto_ptr также перегружают операторы разыменования указателя ( operator-> и operator* ),...
3570 просмотров
schedule
22.02.2024
перегрузка функции шаблона шаблона
Я пытаюсь объявить функцию, которая проверяет, инициализирован ли интеллектуальный указатель. Я написал два варианта функции, которая действует на интеллектуальные указатели, одна функция шаблона действует на шаблоны, а другая действует на шаблон...
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 просмотров
schedule
17.01.2024
Как приводить трейт-объекты с помощью 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 просмотров
schedule
29.11.2023
Общие указатели, хранящиеся в векторе интеллектуальных указателей внутри другого объекта, хранящегося в общем указателе (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