|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.08.2015, 10:05 | #11 |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
new возвращает указатель на объект, если память выделилась. и если всё гуд вызывает конструктор. что бы он ещё проверял валидность объекта, нужно его переопределить, больше никак.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
|
02.08.2015, 10:13 | #12 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
можно в виде кода, а то , в отличии от Делфи, С++ на слух не воспринимаю
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
02.08.2015, 10:21 | #13 |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
Пост.
справочник Код:
Код:
ЗЫ: вы можете описать функцию getError у класса, и если он отличен от 0, то объект не создался успешно.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Последний раз редактировалось Perchik71; 02.08.2015 в 10:24. |
02.08.2015, 10:44 | #14 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
Понятно, нужно "обернуть" конструктор в операторы. Буду пробовать =)
по поводу з.ы. Я конечно не специалист в С++ и не шарю как смотрится с точки зрения гуру С++ во такой код: Код:
Не хочется начинать изучения с++ с этого диалекта
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
02.08.2015, 10:47 | #15 |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
Ну я бы защитил эту переменную, что бы её не было возможности изменить и сделал бы функцию, которая только возвращает. Так безопаснее на мой взгляд.
ЗЫ: можно и не логическое хранить а и целое, например если вы хотите за этими цифрами спрятать текст. Наапример: создать массив строк, а индекс ошибки - индекс в этом массиве (с вычитом -1, ибо с с++ массивы начинаются с 0 индекса) З.Ы.Ы: Если вобще продолжать тему з.ы. то можно сделать так... Код:
Код:
Код:
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Последний раз редактировалось Perchik71; 02.08.2015 в 11:03. |
02.08.2015, 11:40 | #16 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Не надо делать delete this
Надо либо НЕ ловить там exception, либо перебросить его дальше. Компилятор сам вызовет нужные деструкторы. Вам первым же ответом указали как надо делать. http://programmersforum.ru/showpost....68&postcount=2 Ага, а еще надо будет в этом new угадывать *тип* объекта, который мы создаем, поскольку переопределив new для класс мы переопределяем его и для его *наследников*. Каждый из этих наследников тоже может выдать ошибки, которые будет отлавливать new. Последний раз редактировалось Stilet; 02.08.2015 в 13:43. |
02.08.2015, 11:53 | #17 | |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
Цитата:
ЗЫ тот пост ему поможет лишь с членами объекта а не с самим объектом. человек спросил как сделать так, что бы new реагировал на конструктор.. ему сказали. И Да, если вы не в курсе, тело функции остаётся не изменой, даже при наследовании, если наследник не изменил её... и то можно вызвать путём родитель::функция. и результат будет такой же, кк его и описали. Вообщем не усложняйте.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
Последний раз редактировалось Perchik71; 02.08.2015 в 11:57. |
|
02.08.2015, 12:10 | #18 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Т.е. вы предлагаете заменить механизм, встроенный в язык, своим костылем, который будет работать только для строго определенных условий и никак не будет предупреждать, если вы эти условия не соблюдаете и это я усложняю?!
|
02.08.2015, 12:17 | #19 |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
Я предлагаю дополнить механизм new для конкретного класса, а не изменить его вовсе, тем более new возвращает ошибку только в одном случаи, если не удалось выделить память. А это мало, если требуется следить за инициализацией.
Если помог, тут весы есть , Вам не сложно, а мне приятно.
|
02.08.2015, 14:01 | #20 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
Сделал вставку быдлокода с п.с. =)
Более сложные механизмы внутренней кухни С++ мне как то "не хотят" вклиниваться в черепушку. Ну не привык я заниматься байтодро...есвтом и изучениме таинсв устройства ОС и менеджера памяти в программах, которые предназначены совершенно для других целей. В Делфи это делает за меня разработчик среды. Извините господа гуру, что я выбрал такой топорный метод Код:
95% сбоев и ошибок приложений, находится в полу метрах от монитора
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как удалить объект из реестра. | 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 |