|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.03.2018, 01:48 | #21 | |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,872
|
Цитата:
2. А вот это означает что в программе используются переменные, хранящие ссылки на объекты. И подразумевается, что эти переменные единственные, кто хранит данную ссылку. Но теперь другой вопрос/замечание. А кто присваивает этой переменной значение? Разве не Вы как создатель данной программы? И кто уничтожает объект, ссылку на который хранит эта переменная? Тоже не Вы? А если всё делаете вы, то зачем вам проверять самого себя? |
|
09.03.2018, 02:40 | #22 | |
Форумчанин
Регистрация: 10.10.2013
Сообщений: 150
|
Цитата:
В общем, на сколько я понял, только FreeAndNil и никаких способов защиты не существует. Ну и ладно, учту. Ну если кто-то не понимает концепцию программирования и что у каждого философия и подход к кодингу могут быть свои (да и вообще кто-то может иметь свое мнение, в принципе) обзывает всех "говнокодерами" и еще не успокоился, то буду держать за него кулаки, дабы классик ему помог и он наконец действительно успокоился...
Сайт о программировании и трехмерной графике - cybersite.ucoz.net
|
|
09.03.2018, 02:45 | #23 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
09.03.2018, 02:57 | #24 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,872
|
|
09.03.2018, 02:57 | #25 | |
Форумчанин
Регистрация: 10.10.2013
Сообщений: 150
|
Да, действительно, даже классик не помог и это таки на долго :-)
Цитата:
Нет. Цель данной темы найти способ защиты от неправильного удаления объекта. Вот и всё.
Сайт о программировании и трехмерной графике - cybersite.ucoz.net
Последний раз редактировалось cyberdev; 09.03.2018 в 03:02. |
|
09.03.2018, 03:01 | #26 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
09.03.2018, 03:11 | #27 | |
Форумчанин
Регистрация: 10.10.2013
Сообщений: 150
|
Цитата:
Браво! :-) Классик таки о вас сказал. Предположение подтвердилось.
Сайт о программировании и трехмерной графике - cybersite.ucoz.net
Последний раз редактировалось cyberdev; 09.03.2018 в 03:16. |
|
09.03.2018, 03:33 | #28 |
Форумчанин
Регистрация: 10.10.2013
Сообщений: 150
|
Я ничего не понимаю, потому как не являюсь разработчиком языков программирования Delphi и C++. Но вы то тут профессиональный программист? Возможно даже разработчик языков программирования Delphi и C++, кто знает... :-) Тогда может быть, объясните мне, почему разработчики сделали такой механизм? Что послужило причиной сделать так, что объекты могут не обнуляться после удаления (это же потенциальная причина ошибки(!))?
Если кто не понял, в сообщении присутствует доля юмора :-) Но вопрос актуален!
Сайт о программировании и трехмерной графике - cybersite.ucoz.net
Последний раз редактировалось cyberdev; 09.03.2018 в 03:46. |
09.03.2018, 12:44 | #29 | ||
Форумчанин
Регистрация: 13.08.2011
Сообщений: 184
|
Цитата:
Когда несколько ссылок это уже другая ситуация, для этого в С++ есть шаред поинтеры. Т.е объект подсчитывающий кол-во ссылок на объект и удаляющий объект только если счетчик достигает 0 Цитата:
Записывать в в ячейки где хранился объект нули ? Это потенциальная лишняя работа... Которая никому не нужна. При удалении область памяти становится "незанятой" и может быть отдана под другой объект, при создании которого старые данные в этой области просто перепишутся на новые, без ненужного "обнуления". Ссылка/указатель же лишь объект хранящий адрес(число) по которому расположен(или был расположен) объект. Последний раз редактировалось Alex11223; 09.03.2018 в 13:02. |
||
09.03.2018, 20:57 | #30 |
Форумчанин
Регистрация: 10.10.2013
Сообщений: 150
|
Ну это уже в зависимости от ситуации, когда нужно обнулять оставшиеся указатели, а когда и необязательно, например, при удалении главного окна программы, когда любые указатели уже использоваться не будут. Во время же работы программы такая необходимость есть потому как можно перепутать, по запарке существующий объект с уже удаленным. Ну да ладно, методы борьбы с данным недостатком всем известны.
Теперь мне интересно другое. Меня тут обвинили в незнании и всё такое... Скажу, что это нормально чего-то не знать, тем более на форуме. Иначе, теряется смысл обращения на него за ответом :-) Так вот, хочу спросить прежде всего у тех, кто считает себя умнее других, показывает пальцем и говорит, ты не знаешь, сего, того и всё такое... Почему разработчики языков Делфи и C++ сделали такой механизм, чтобы ссылка не обнулялась?
Сайт о программировании и трехмерной графике - cybersite.ucoz.net
Последний раз редактировалось cyberdev; 09.03.2018 в 20:59. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проверить существование объекта | cyberdev | Общие вопросы Delphi | 23 | 06.03.2018 19:56 |
JSON проверить существование значения | Dozent | Общие вопросы Delphi | 2 | 07.04.2015 18:16 |
Проверить существование значения в TStringList | Shouldercannon | Общие вопросы Delphi | 4 | 20.01.2013 15:03 |
Проверить существование папки | Stepan575 | Visual C++ | 4 | 17.12.2010 19:02 |