Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.23;
Скачать: CL | DM;

Вниз

Вопрос про ООП   Найти похожие ветки 

 
Dmitry S ©   (2008-02-11 05:48) [0]

Конструктивно:
Есть класс TStream.
У него есть куча потомков, например, TMemoryStream и TFileStream;

Как мне в TStream добавить несколько дополнительных методов так, чтобы они появились и у TMemoryStream и TFileStream?

Естественно без перекомпиляции генофонда:)


 
iZEN   (2008-02-11 05:52) [1]

Никак.


 
MBo ©   (2008-02-11 06:36) [2]

кое-что можно в BDS сделать с помощью class helpers


 
Slym ©   (2008-02-11 06:54) [3]

Dmitry S ©   (11.02.08 5:48)
делай класс Реадер/Врайтер
TStreamExtensions=class(TStream)
private
 FStream:TStream;
public
 function ReadLn:string;
 constructor Create(Stream:TStream);override;
 destructor Destroy;override;
end;

TStreamExtensions.Create(Stream:TStream);
begin
 inherited;
 FStream:=Stream;
end;
TStreamExtensions.Destroy;
begin
 FStream.Free;
 inherited;
end;

MyStream:=TStreamExtensions.Create(TMemoryStream.Create);
MyStream.ReadLn;
MyStream.Free;


 
Skier ©   (2008-02-11 11:08) [4]

>Dmitry S ©   (11.02.08 05:48)  
А можно узнать зачем?


 
Palladin ©   (2008-02-11 11:17) [5]


> [4] Skier ©   (11.02.08 11:08)

Иногда не хватает функционала для удобства у базового класса...


 
Marser ©   (2008-02-11 11:22) [6]


> Slym ©   (11.02.08 06:54) [3]
> Dmitry S ©   (11.02.08 5:48)делай класс Реадер/Врайтер

Ага, обёртку над стандартным классом, достаточно полезно бывает.
А врубиться за просто так в стандартные классы не выйдет, разве что вытянуть их полный код, переименовать и переделать по-своему - если уж делать, то так хоть безопасно.



Страницы: 1 вся ветка

Текущий архив: 2008.03.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
15-1202182276
Rian
2008-02-05 06:31
2008.03.23
Как через Format выводить Float фиксированного размера?


4-1178624707
Glu
2007-05-08 15:45
2008.03.23
Дата BIOS в WinXP x64


15-1202831227
Nucer
2008-02-12 18:47
2008.03.23
Лицензирование Windows 2003 Server Standard


15-1202741305
БарЛог
2008-02-11 17:48
2008.03.23
Статья о передаче файлов потоком


2-1203588470
oleg_teacher
2008-02-21 13:07
2008.03.23
Свое расширение на файл.