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

Вниз

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

 
Кто б сомневался ©   (2009-07-15 20:30) [0]

Дано:

TSidRec = record                
   SID: PSID;
   SIDLength: integer;
   class operator Implicit(ANewSid: PSID): TSidRec;
 end;

class operator TSidRec.Implicit(ANewSid: PSID): TSidRec;
begin
Result.SID := ..
end;

Как получить ссылку на текущую структуру TSidRec?
Result - насколько я понял новая структура, которая будет поставлена на место старой. Если посмотреть Result в отладичке - то в ней будут рэндомные значения, поэтому я так понимаю это свежесозданный record,

Возможно ли это? В справке не написано об этом.
И что происходит со старой структурой? Она уничтожается по идее?


 
Игорь Шевченко ©   (2009-07-15 20:38) [1]


> Как получить ссылку на текущую структуру TSidRec?


Self ?


 
oxffff ©   (2009-07-15 20:42) [2]


>  Перегрузка оператора присваивания в структурах


По идеалогии Pascal перегрузка оператора присваивания недопустима.
В твоих примерах речь идет о явном и неявном преобразовании типов.


 
Кто б сомневался ©   (2009-07-15 20:43) [3]


> Self ?


Нет. Это record


 
Кто б сомневался ©   (2009-07-15 20:51) [4]


> В твоих примерах речь идет о явном и неявном преобразовании
> типов.


Верно. Но суть вопроса не меняется.


 
oxffff ©   (2009-07-15 20:58) [5]


> Кто б сомневался ©   (15.07.09 20:51) [4]


А почему тогда у тебя параметром стоит тип PSID?

RTFM. :)


 
Кто б сомневался ©   (2009-07-15 21:00) [6]

> В твоих примерах речь идет о явном и неявном преобразовании
> типов.

Кстати, нашел тут - возможна неявная перегрузка оператора присваивания.

http://www.realcoding.net/articles/delphinet-peregruzka-operatorov.html#IDAGQF2C


 
Кто б сомневался ©   (2009-07-15 21:03) [7]


> oxffff © [5]


Не гони, лошадей .. Там все ок. :)


 
oxffff ©   (2009-07-15 21:09) [8]


> Кто б сомневался ©   (15.07.09 21:03) [7]


Там врут и не стесняются. Я серьезно.


 
Кто б сомневался ©   (2009-07-15 21:18) [9]


> > Кто б сомневался ©   (15.07.09 21:03) [7]
>
>
> Там врут и не стесняются. Я серьезно.


Ниче не понял чес говоря.. Ты про статью?


 
oxffff ©   (2009-07-15 21:20) [10]


>
> Ниче не понял чес говоря.. Ты про статью?


Естественно.


 
Игорь Шевченко ©   (2009-07-16 00:57) [11]


> Нет. Это record


и че ?

type
 TFoo = record
 private
   FName: string;
 public
   procedure Bar (const AName: string);
   procedure Cry;
 end;

...

{ TFoo }

procedure TFoo.Bar(const AName: string);
begin
 FName := AName;
end;

procedure TFoo.Cry;
begin
 ShowMessage(" My name is "+Self.FName);
end;

....

var
 Foo: TFoo;
begin
 Foo.Bar("Foo");
 Foo.Cry;
end;


 
Пит   (2009-07-16 13:14) [12]

ЭЭЭЭ... Господа!!! Я подумал, что вчера перепил, тут так серьезно обсуждают все это...

А с каких это времен внутри рекорда можно объявлять методы?!


 
Кто б сомневался ©   (2009-07-16 13:42) [13]


> > Нет. Это record
>
>
> и че ?


Игорь, в таких методах как Implicit нелья его использовать. Матерится компилятор. Я self проверил в самом начале.


> ЭЭЭЭ... Господа!!! Я подумал, что вчера перепил, тут так
> серьезно обсуждают все это...
>
> А с каких это времен внутри рекорда можно объявлять методы?
> !


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


 
PEAKTOP ©   (2009-07-16 13:45) [14]

> А с каких это времен внутри рекорда можно объявлять методы?

С времен CGRS2009. Только вопрос: на куа ?

Да, есть в природе реальные и прикольные задачи (например, run-time дизайнер объектов или форм, a-la Delphi), где вся эта мощь новых расширений языка будет полезна и дает красивый, читабельный код.

А для задач по проще (а по сути - прикладных ежедневных вопросов) вполне спецификации Delphi7 хватает выше крыши.


 
Кто б сомневался ©   (2009-07-16 13:45) [15]


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

щас скажу точнее, еще 3-4  года назад, с Delphi 2006.


 
Кто б сомневался ©   (2009-07-16 13:49) [16]


> PEAKTOP ©   (16.07.09 13:45) [14]

> Только вопрос: на куа ?
> Да, есть в природе реальные и прикольные задачи (например,
>  run-time дизайнер объектов или форм, a-la Delphi), где
> вся эта мощь новых расширений языка будет полезна и дает
> красивый, читабельный код.
>
> А для задач по проще (а по сути - прикладных ежедневных
> вопросов) вполне спецификации Delphi7 хватает выше крыши.
>




Ты сам и ответил на этот вопрос.
У всех разные ведь задачи. ты занимаешся прикладными задачами попроще, а я  run-time дизайнером объектов или форм, посложнее.



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

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

Наверх




Память: 0.51 MB
Время: 0.016 c
15-1247658666
картман
2009-07-15 15:51
2009.09.13
Как добавить данные из БД в полученный ранее набор данных?


15-1247808740
b/@.
2009-07-17 09:32
2009.09.13
Пятничное


15-1247037544
Rouse_
2009-07-08 11:19
2009.09.13
Погиб Виталий Невзоров


9-1181661095
MERLIN:)
2007-06-12 19:11
2009.09.13
Нужно сделать анимацию


2-1246981519
sdc-alex
2009-07-07 19:45
2009.09.13
Обработка БД Access 2000