|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
01.08.2015, 11:12 | #1 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
Удалить объект в конструкторе
Здравствуйте господа Гуру С++
Имеется некий класс А в конструкторе которого прописано создание объектов других классов (несколько штук разных). Если один из объектов не создаётся по какой то причине, нужно убить и сам объект контейнер. Вопрос, как это синтаксически и логически правильно прописать в С++ наглядно Код:
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
01.08.2015, 11:22 | #2 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
Имеется некий класс А в конструкторе которого прописано создание объектов других классов (несколько штук разных).
Если один из объектов не создаётся по какой то причине, нужно убить и сам объект контейнер. Вопрос, как это синтаксически и логически правильно прописать в С++ Код:
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
01.08.2015, 11:25 | #3 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
А где код самоубийца?
Мне нужно в конструкторе сделать самоубийство в случае, если какой то из объектов не создался
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
01.08.2015, 18:08 | #4 |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
try ... catch тобишь исключения.... и так все конструкторы.
А ещё есть какие то другие исключения... которые перетекли с делфи Exception например. офф сайт ЗЫ: А валить объект не нужно он должен при создании вернуть NULL так покрайне мере в чистом с++... Rififi показал способ, который кстати описан в офф сайте выше ссылка
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Последний раз редактировалось Perchik71; 01.08.2015 в 18:22. |
01.08.2015, 22:57 | #5 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
|
01.08.2015, 23:52 | #6 |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
Переопределением new
ЗЫ: не глобального, а для класса, хз работает ли это в Builder, особенно в 6. На игровом форуме, такая тема поднималась, пришли к вот такому вообще выводу Пост. Код:
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Последний раз редактировалось Perchik71; 02.08.2015 в 00:04. |
02.08.2015, 00:08 | #7 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
Для того, чтоб это сработало надо такой огород нагородить, что это трудно будет назвать чистым С++. Уж тогда лучше стандартным способом - выбросив exception.
|
02.08.2015, 00:43 | #8 |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
Зачем убивать сам объект при создании? А как код создающий объект узнает что тот самоубился? Не уверен что это логически верно да и вообще возможно.
Если что-то пошло не так - останавливаемся и выкидываем исключение. Код который вызывает создание объекта должен ловить исключение, и тогда вызывать деструктор. Не? |
02.08.2015, 09:28 | #9 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,330
|
И того проще - только ловить исключение и присваивать NULL;
Хотя, по сути, и это будет лишним - ведь потом кто-то будет проверять этот NULL, а раз он присваевается в catch блоке, то прямо там можно вставить обработчик ошибок. Вся прелесть в том, что catch блок может быть один на много операций. |
02.08.2015, 09:55 | #10 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
Господа, перепробовал Ваши методи и что самое главное - спасибо Вам огромное они прокатили НО осталась ещё одна хрень. Каскадное оповещение о самоубийстве вложенного объекта.
Поясняю подробно. У меня происходит приблизительно следующее Код:
95% сбоев и ошибок приложений, находится в полу метрах от монитора
Последний раз редактировалось JUDAS; 02.08.2015 в 10:14. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как удалить объект из реестра. | foxes | Общие вопросы Delphi | 7 | 05.12.2013 13:31 |
как удалить в списке объект по ссылке | the_deer_one | C# (си шарп) | 4 | 25.04.2012 06:34 |
как удалить объект во время выполнения программы на AS 2.0 | ALKOrobot | JavaScript, Ajax | 0 | 11.07.2011 01:09 |
как удалить объект по указателю на его базовый класс? | AndreyBS | Общие вопросы C/C++ | 5 | 17.04.2011 11:29 |
Объект одного класса в конструкторе другого | Benderbej | PHP | 5 | 13.02.2011 22:48 |