В чем различие родственных объектов в Delphy?
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
В чем различие родственных объектов в Delphy? - 2009-10-25 12:03:13.716666
|
|
|
tredermlz
Сообщений: 3
Оценки: 0
Присоединился: 2009-10-25 10:03:59.160000
|
На пример у меня есть два объекта TStings и TStringList(то что происходит от TStings в курсе), вопрос заключается в том, стоит ли объявлять переменную как TStings а затем инициализировать как TStringList? Даст это ли какие преимущества?
|
|
|
RE: В чем различие родственных объектов в Delphy? - 2009-10-25 12:18:05.580000
|
|
|
Genco
Сообщений: 1662
Оценки: 90
Присоединился: 2007-12-16 23:11:22.003333
|
Ты сначала реши что тебе надо. Посмотри различия между этими классами (что добавили вTStringList) и оцени сам преимущества))
|
|
|
RE: В чем различие родственных объектов в Delphy? - 2009-10-25 12:31:23.110000
|
|
|
tredermlz
Сообщений: 3
Оценки: 0
Присоединился: 2009-10-25 10:03:59.160000
|
вот пример var f:TStrings; begin f:= TStringList.Create(); …. f.Free; end; я так и не понял зачем в коде так сделали, не проще сразу делать так: var f:TStringList; begin f:= TStringList.Create(); … f.Free; end; если кто-то так пишет, то он наверно осмысленно это делает?
|
|
|
RE: В чем различие родственных объектов в Delphy? - 2009-10-25 12:50:23.220000
|
|
|
Lost_boy
Сообщений: 327
Оценки: 0
Присоединился: 2009-03-25 11:07:27.910000
|
В Дэлфе не разбираюсь, могу быть не прав, НО: разве весь смысл не в том, к чему относится f, по идее в двух случаях результат и цели немного разные… в первый раз f:TStrings; а во второй раз f:TStringList;
|
|
|
RE: В чем различие родственных объектов в Delphy? - 2009-10-25 14:01:00.026666
|
|
|
alexbozhko
Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
|
Derive a class from TStrings to store and manipulate a list of strings. TStrings contains abstract or, in C++ terminology, pure virtual methods and should not be directly instantiated. Т.е. TStrings нельзя использовать сам по себе
var
ss: TStrings;
begin
try
ss:=TStringList.Create;
finally
ss.Free;
end;
end; Вот так правильно работать с ним Вот так будет ошибка
var
ss: TStrings;
begin
try
ss:=TStrings.Create;
finally
ss.Free;
end;
[b][/b] end; TStringList = class(TStrings) – это класс наследник А TStrings, по сути абстрактный класс, который нельзя использовать сам по себе
|
|
|
RE: В чем различие родственных объектов в Delphy? - 2009-10-25 14:03:53.650000
|
|
|
alexbozhko
Сообщений: 1024
Оценки: 0
Присоединился: 2005-11-24 13:35:34
|
quote:
ORIGINAL: tredermlz я так и не понял зачем в коде так сделали, не проще сразу делать так: var f:TStringList; begin f:= TStringList.Create(); … f.Free; end; если кто-то так пишет, то он наверно осмысленно это делает? Затем же, зачем всегда делают абстрактные классы, и абстрактные методы
|
|
|
RE: В чем различие родственных объектов в Delphy? - 2009-10-25 14:04:08.330000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
кто-нибудь, расскажите же ему про позднее связывание
|
|
|
RE: В чем различие родственных объектов в Delphy? - 2009-10-26 13:27:10.836666
|
|
|
tredermlz
Сообщений: 3
Оценки: 0
Присоединился: 2009-10-25 10:03:59.160000
|
Подскажите что это за позднее связывание? а то поисковики мне только сайты про сети и клиент-серверные приложения выдает..
|
|
|
RE: В чем различие родственных объектов в Delphy? - 2009-10-26 14:20:43.600000
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
http://ru.wikipedia.org/wiki/Полиморфизм_(программирование) http://delphi.about.com/od/oopindelphi/a/delphi_oop13_2.htm http://etutorials.org/Programming/mastering+delphi+7/Part+I+Foundations/Chapter+2+The+Delphi+Programming+Language/Late+Binding+and+Polymorphism/ коротко говоря, переменная со статическим типом TStrings может реально являтся (иметь динамический тип) как TStringList, так и любого другого потомка TStrings. определение того, какой именно динамический тип имеет переменная, происходит во время выполнения (потому и позднее связывание)
|
|
|
|
|