170 похожих чатов

При выходе из области видимости unique_ptr вызывает деструктор хранимого объекта?

24 ответов

19 просмотров

да

вызывается деструктор самого unique_ptr, который вызовет deleter, да

Ffff-Ffff Автор вопроса
Ilya Zviagin
да

а make_unique только вызывает конструктор объекта?

Ffff Ffff
а make_unique только вызывает конструктор объекта?

Ну не только, он же ещё динамически объект создаёт , выделяет память, а затем создаёт в этой памяти объект, вызывая конструктор

Ffff-Ffff Автор вопроса
Ilya Zviagin
Ну не только, он же ещё динамически объект создаёт...

auto unq = std::make_unique<SomeClass>(/* ctor args */); вот типовой пример использования с обычным классом, а как быть если я хочу использовать unique_ptr с классом-фабрикой других классов?

Ffff Ffff
auto unq = std::make_unique<SomeClass>(/* ctor arg...

Интерфейс у фабрики какой ?

Ffff Ffff
auto unq = std::make_unique<SomeClass>(/* ctor arg...

для начала, можно не использовать std::make_unique

Ffff-Ffff Автор вопроса
Ffff Ffff
пока не сделал)

Так делай тогда фабрику так, чтобы она уже возвращала unique_ptr или shared_ptr

Ilya Zviagin
Интерфейс у фабрики какой ?

а если бы фабрика давал объект по значению?

Ffff-Ffff Автор вопроса
Ilya Zviagin
Так делай тогда фабрику так, чтобы она уже возвращ...

а разницу возвращаемых объектов делать с помощью перегрузок?

Ffff-Ffff Автор вопроса
Ilya Zviagin
Так делай тогда фабрику так, чтобы она уже возвращ...

class PreprocessingFactory { public: PreprocessingFactory(); std::unique_ptr<SomeClass1> buildPreprocessing(int ); std::unique_ptr<SomeClass2> buildPreprocessing(cv::Mat); private: };

Ffff-Ffff Автор вопроса
Ilya Zviagin
Не понял.

имел ввиду сам метод создания объектов перегрузить несколько раз, сделал пример в коде

Ffff Ffff
class PreprocessingFactory { public: Preprocessing...

Пример странный, почему одинаковые методы ? buildPreprocessing - две штуки , почему ? Обычно методы называются по имени производимого продукта. buildProduct1, buildProduct2, buildHouse, buildCar и так далее. Тут я мысль не понял.

Ffff-Ffff Автор вопроса
Ilya Zviagin
Пример странный, почему одинаковые методы ? buildP...

методы одинаковые потому что в зависимости от железа будет использоваться один либо другой класс препроцессинга, при препроцессинге на cpu будет использоваться opencv а при препроцессинге на gpu будет использоваться npp, и я решил что бы не иметь зоопарк разных классов в разных местах лучше попробовать сделать фабрику с одним интерфейсом

Ffff Ffff
методы одинаковые потому что в зависимости от желе...

Так это должен быть один метод, а не два.

Ffff-Ffff Автор вопроса
Ilya Zviagin
Так это должен быть один метод, а не два.

перегрузки использовать плохо?

Ffff Ffff
перегрузки использовать плохо?

Нет, просто ты же фабрику пишешь, тут это против её логики

Ffff-Ffff Автор вопроса
Ilya Zviagin
Нет, просто ты же фабрику пишешь, тут это против е...

например я буду вызывать метод билдера объекта с разными аргументами в зависимости от железа, и он будет возвращать unique_ptr на разные объекты

Ffff-Ffff Автор вопроса
Ilya Zviagin
Нет, просто ты же фабрику пишешь, тут это против е...

каждый метод фабрики должен по задумке возвращать только объект одного класса?

Похожие вопросы

Обсуждают сегодня

Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Коллеги, добрый вечер. Создаю коллекцию от TFPGMap, ключ - перечисление, значение - целое. Нужно отсортировать коллекцию по значению. Как это можно сделать?
Kirill Filippenok
11
Скажи а ты когда этот канал создавал ты уже дельфи не любил, или это со временем пришло?
Роман Лях (rgreat)
18
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет! Использую кастомное модальное диалоговое окошко, все по классике - mrOK, mrCancel как ModalResult. Однако есть нюанс - в главной форме есть универсальный обработч...
Олег Гранишевский
20
Карта сайта