Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2010, 01:09   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию Вдруг приспичило понять разницу между TstringList и TStrings. Что за класс TPersistent?

Погуглив немножко, я понял, что TStrings - "абстрактный" класс. Ни разу не слышал про асбтрактные классы, но, конечно, немного догадываюсь, но хотелось бы поточнее понять.
Так же заметил, что TStrings идёт от TPersistent и вспомнил, что от него идут и многие другие классы в том, числе и TJpegimage... Какова суть этого класса?
TwiX вне форума Ответить с цитированием
Старый 12.06.2010, 01:32   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

абстрактный класс это класс который содержит обьявления методов, но не их реализацию(как минимум часть методов не реализована).
нужно для того чтоб от него наследовать классы которые могут быть использованы не зависимо от того какой именно класс у нас есть(какая именно реализация)
вспомни TStream
ведь ты может использовать как TFileStream,так и TMemoryStream(есть еще TSocketStream(как то так))
и битмапу не важно с какого именно потока грузится...(TBitmap.LoadFromStream) .
один из китов ООП.
крутая вещь если подумать...ведь ты думаешь что у мемо TStrings(Memo.Lines) нет, так особый класс связаный с самим мемо, который читает все св-ва из него.
за счет такого нам не надо писать процедуры для каждого типа класса.
достаточно написать для общего предка TStrings который имеет все методы, а вот уже конкретный экземпляр...будет делать работу...но процедура не знает какой именно класс используется...она знает лишь то что он совместим с TStrings

TPersistent дает Assign в первую очередь...то есть копирование объекта класса...а точнее его данные(члены класса)...но помоему само копирование реализует самостоятельно...(для графики одно...для строк иное)

надеюсь норм объяснил
(если что на вике про ООП почитай)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 12.06.2010 в 01:37.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.06.2010, 02:29   #3
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Спасибо)
Про TPersistent - сам сразу подумал про Assign, но был в замешательстве по поводу копирования... Он копирует только те поля, которые есть у него?
Про TStrings - тоже примерно так и подумал, но не понимал почему его нельзя использовать... Алгоритм хранения данных реализован только в наследнике чтолЬ??

А ООП то я знаю =) Просто про абстракный класс первый раз услышал. Ладно там виртуальные и абстракные процедуры, но не классы =)
TwiX вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что нужно сделать с <td> что бы между картинками другого <table> не было разделения? alex555 HTML и CSS 22 24.04.2012 16:43
Вычислить разницу между датами без учета года k1r1ch Общие вопросы Delphi 10 20.08.2009 18:36
Класс TStringlist vitamin.rulez Помощь студентам 1 09.02.2009 14:42
Не могу понять, что требуется? Shuraken Общие вопросы Delphi 2 10.08.2007 11:41
Класс TStringList Pblog Обсуждение статей 0 27.05.2007 02:13