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

Вниз

Преобразование из одного типа в другой   Найти похожие ветки 

 
SuperMagic ©   (2003-05-06 10:49) [0]

Ребята проблема в следующем:
Есть у меня клас CFigure-абстрактный
СLine=class(CFigure)
CSpline=class(CFigure)
Как преобразовать объект класса CLine в объект класса CSpline


 
Digitman ©   (2003-05-06 11:03) [1]

никак


 
Digitman ©   (2003-05-06 11:06) [2]

Золото = class(Металл)
Медь = class(Металл)

Как преобразовать Медь в Золото ?) И наоборот ?)
Сиди и осмысливай) .. Удастся - станешь алхимиком)




 
Крот ©   (2003-05-06 11:07) [3]

Насколько я понимаю, классы CLine и CSplin не связаны отношением "Базовый класс->Производный класс", поэтому их нельзя привести друг к другу. Можно базовый класс привести к производному или наоборот. Как это пишется на Builder не знаю.



 
Anatoly Podgoretsky ©   (2003-05-06 11:19) [4]

Привести можно к чему угодно, вот только он не просит приводить, а просит преобразовать (свинец в золото)


 
Palladin ©   (2003-05-06 11:25) [5]

в ручную можно... как метод объекта например...

CLine.AsCSpline:CSpline;

и писать функцию-преобразователь


 
vuk ©   (2003-05-06 11:39) [6]

В vcl подобные проблемы решает метод Assign.


 
Polevi ©   (2003-05-06 15:59) [7]

2vuk © (06.05.03 11:39)
?


 
vuk ©   (2003-05-06 16:42) [8]

Например:


procedure TBlobField.Assign(Source: TPersistent);
var
StreamPersist: IStreamPersist;
begin
if Source is TBlobField then
begin
LoadFromBlob(TBlobField(Source));
Exit;
end;

if Source is TStrings then
begin
LoadFromStrings(TStrings(Source));
Exit;
end;

if SupportsStreamPersist(Source, StreamPersist) then
begin
LoadFromStreamPersist(StreamPersist);
Exit;
end;

inherited Assign(Source);
end;


 
Polevi ©   (2003-05-06 17:16) [9]

ну и где здесь преобразование


 
vuk ©   (2003-05-06 17:59) [10]

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



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

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

Наверх




Память: 0.48 MB
Время: 0.036 c
3-83388
Юрий
2003-05-06 14:31
2003.05.26
DBgrid


14-83713
VEG
2003-05-06 17:09
2003.05.26
Управление PDA


7-83781
Ик сик
2003-03-25 15:33
2003.05.26
Можно ли читать данные из сом-порта, открытого другой программой?


1-83518
Aleksei85
2003-05-16 10:51
2003.05.26
Как получить имена файлов, выделенных в окне диалога OpenDialog?


3-83402
User_OKA
2003-05-03 11:33
2003.05.26
Locate