|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.12.2010, 08:14 | #31 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Ну так а создание новой переменной (увеличение счетчика) тут как раз по моему? Т.е. все остальные модули могут спокойно отработав декриментировать счетчик, а когда пользователь вздумает, в соответствующем модуле, так же декремент сделать, и все освободиться.
|
15.12.2010, 09:10 | #32 | |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Цитата:
Пользователь пишет что-то типа скрипта. Типа того: 1. Создать объект Тип: Узел-связь Имя: Точка крепления X, Y, Z: (0, 0, 0) 2. Создать объект Тип: Нить Имя: Нить1 P1: <Точка крепления> P2: (1, 1, 0) ... (сечение, плотность, модуль деформации, прочность и т.д.) 3. Создать объект Тип: Тело Имя: Нить1 P1: Нить1.P2 P2: ... P3: ... ... (геометрия, плотность, и т.д.) 4. Запускаем цикл имитирующий подъем шарика. Если система уравновесилась и находится в относительном покое, снимаем какие-то данные и завершаем работу. Если нить не выдержала переходим на 5. 5. Удаляем нить. Запускаем цикл имитирующий свободный подъем шарика (допустим в течении 5 сек) (по сути это тот же цикл из 4, только не обрабатывается нить, т.к. она удалена). Снимаем какие-то данные и завершаем работу. Повторюсь. Скрипт пишет юЗверь. Он может дать команду именно 1. Удалить нить , а не 1. Тело.P1 := Создать глобальную точку 2. Тело.P1.Assign (Нить1.P2) 3. Удалить нить Последний раз редактировалось Sibedir; 15.12.2010 в 09:17. |
|
15.12.2010, 13:51 | #33 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Ну так и делайте связь отдельным объектом.
Код:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
15.12.2010, 15:15 | #34 | ||
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Цитата:
Ns ~ No^2 (в задаче о нескольких гравитирующих телах и подобных ей) Цитата:
Вы мне вот все про интерфейсы твердите, а конкретно ничего не говорите. Ответте, пожалуйста, на вопросы в посте #29. |
||
15.12.2010, 17:45 | #35 | |||||
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Если готовое примеры кода и указание на готовые реализации - это не конкретно, то что ж для вас конкретно? Программу за вас написать?
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|||||
15.12.2010, 17:47 | #36 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Каков размер предметной области? Просто может оказаться, что объекты здесь вообще не в тему, а вот БД - в самый раз.
На БД же намекает ваше желание экономить на копейках.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
16.12.2010, 05:15 | #37 | |||||||
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Цитата:
Цитата:
Цитата:
Я не забиваю голову ерундой, а пытаюсь разобраться. И пока ни одного достойного довода в пользу интерфейсов (кроме наличия счетчика и автоудаления, что само по себе еще не благо) я не услышал. Цитата:
Цитата:
Цитата:
Цитата:
Постораюсь пояснить, чем меня так смущают интерфейсы. Вот классы меня не смущают. Там все просто. Каждый метод имеет свой точный адрес (относительно адреса класса). При вызове любого метода, как и при обращении к полю, компилятор вставляет 1 указатель на вызываемый метод. С интерфейсами же так быть не может по определению. Один и тот же интерфейс можно прикрутить к сотне классов. А при обращении к методу, объявленному в интерфейсе через экземпляр среднего рода (я могу не знать класс, и комп может его заранее не знать), мотод таки найдется. Но мы не знали его точное расположение. Только имя. Следовательно произошел некий скрытый поиск. Следовательно программа потратила "лишнее" время. Я не знаю этого точно, потому-то мне это и не нравится. Я ни когда не сяду за руль автомобиля, не зная принцип его работы. Автобус ездит так же как легковая, но за легковушку я сяду, а за руль автобуса - ищите другого камикадзе. Последний раз редактировалось Sibedir; 16.12.2010 в 10:25. |
|||||||
21.12.2010, 04:17 | #38 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Хм. А вот вполне, как мне кажется, разумное решение. Правда, при "неправильном" использовании может привести к "засеранию" памяти.
Можно переопределить метод NewInstance и создавать объект в новой куче. Перед указателем добавляем новое поле со смещением _Assigned = -X. Туда при инициализации записывать True, а при уничтожении False. Естественно, это место в куче будет застолблено (вот оно "засерание"), пока не будет произведена ревизия ссылок. А теперь добавляем Код:
|
21.12.2010, 23:48 | #39 |
Тот ещё
Старожил
Регистрация: 14.11.2007
Сообщений: 2,242
|
Вот чего накропал:
Выделина ли память.zip Знаю, что не правильно. Очень хотелось бы услышать мнение тех, кто знает, как GetMem выделяет память. |
22.12.2010, 09:11 | #40 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Sibedir, без обид, но ваши "изобретения" выглядят ровно так же, как попытки Utkin-а изобрести результат операции деления на ноль.
Совет: не маяться фигнёй.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Неправильно выделена память. С++ | Purr | Помощь студентам | 7 | 31.10.2010 20:05 |
Как передвигать объект если он не под формой.VB | somebody94 | Помощь студентам | 1 | 29.06.2010 10:07 |
Объект PageSetup. Как проверить пустые ли колонтитулы в документе Word?? =) | YaponskijGorodovoj | Компоненты Delphi | 0 | 09.06.2010 23:09 |
динамически выделить память под верхний треугольник квадратной матрицы | juventine | Общие вопросы C/C++ | 2 | 12.04.2009 13:06 |
Память, выделяемая под приложение. | Altera | Компоненты Delphi | 4 | 30.11.2008 18:13 |