SMS

Loading thread data ...
Reply to
Dimmy Timchenko
22-Jan-04 13:40 Harry Zhurov wrote to Dimmy Timchenko:

HZ>>> видимости (внутpи себя), что позволяет использовать более коpоткие HZ>>> и удобочитаемые имена (снаpужи и внутpи).

DT>> Ещё бы опеpатоp with... :) А за его отсутствием пpиходится юзать классы.

HZ> Зачем он нужен? Можешь пример кода привести, где это используется и HZ> демонстрирует преимущества?

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

with earthplatform.slon[1] do begin height := 3; weight := 2; sex := male; age := 10; origin := india; end;

всё-же несколько приятнее выглядит, чем

earthplatform.slon[1].height := 3; earthplatform.slon[1].wihjt := 2; earthplatform.slon[1].sex := male; earthplatform.slon[1].age := 10; earthplatform.slon[1].origin := india;

от этого в глазах рябит :-)

Ну и в реализациях на старушке PDP-11 слово with было громким намёком компилятору "щас мы ентот объект юзать будем интенсивно" и до трёх указателей на объекты, указанные в with он кешировал в регистрах. Только уже забыл - три первых или три последних :-) Имеется ввиду with object1 do with object2 do with object3 do with object4 do begin end; на кого из этих четырёх объектов указатель не закешируется.

wbr,

Reply to
Oleksandr Redchuk
Reply to
Alexander Torres
Reply to
Dmitry Lyokhin

Alexander, ты ещё здесь сидишь?

Среда Январь 21 2004 15:33, Alexander Derazhne wrote to Serge Bryxin:

SB>> Структура графа вообще такого понятия не предполагает. Т.е. все в SB>> руках дизайнера интерфейса. AD> Если ты реализуешь структуру меню в виде графа общего вида, то AD> пользователю придётся ходить на курсы по этой железяке :-)).

Структура html текста с гиперссылками - граф общего вида. Тем не менее им без особых проблем пользуются, не ходя ни на какие курсы по конкретным документам или сайтам ;)

Георгий

Reply to
George Shepelev
Reply to
Dimmy Timchenko
Reply to
Alexander Torres
Reply to
Alexander Torres
Reply to
Dimmy Timchenko
Reply to
Dennis Opanasenko
Reply to
Alexander Torres
23-Jan-04 13:39 Harry Zhurov wrote to Dennis Opanasenko:

HZ> Это, как раз, самый настоящий С++, а не тот кастрат, что сейчас у HZ> ИАРа - HZ> ЕС++.

DO>> и namespace это несколько про другое, для указания полей структуры ты все DO>> равно явно указываешь имя структуры.

HZ> А ты клади поля не в структуру, а в namespace. И будет то же самое. Как?!!!! У меня _несколько_ структур. Я работаю с ними где по очереди, где в цикле. Как это можно сделать через namespace? Такое ощущение, что ты слишком привык к тому, что у тебя в программах по единственному экземпляру каждого класса :-)

Wbr,

Reply to
Oleksandr Redchuk
23-Jan-04 07:19 Harry Zhurov wrote to Oleksandr Redchuk:

HZ> А через указатель на член не то же самое получается? Код:

HZ> TEarthplatform::*p = &earthplatform.slon[1];

p->height = 3; p->weidth = 2; p->sex = male; p->age = 10; p->origin = india;

HZ> От этого не рябит? И писанины не больше. _Ненамного_ больше. А если мы теперь функциями из одной записи обрабатываем поля другой, то with processor do with data do begin func1(filed2); func3(filed0); func5(filed2,filed3); end;

Заменится уже на Pprocessor *pp = &processor; Pdata *pd = &data; pp->func1(pd->field2); pp->func3(pd->filed0); pp->func5(pd->filed2,pd->filed3);

что рябит уже несколько больше.

Я понимаю, что это всё можно попробовать записать через processor << data; // :-) но...

HZ> И это также является даже HZ> сверхгромким намеком компилятору обращаться через индексный регистр. Это HZ> раз. Это является _требованием_, а не намёком. Это не возражение, это уточнение.

HZ> Во-вторых, в С++ стиль с открытыми членами-данными не приветствуется. HZ> Не HZ> тебе это говорить. По-нормальному весь этот код помещается в фунцию-член HZ> (которая может быть инлайновой). Мне доводилось разбираться в паскльном коде, в котором этих with подряд было написано штуки по 3-4. И после где-то второй страницы оно уже легко читалось. В варианте с промежуточными указателями было бы уже гораздо труднее. К C++ я тогда не пытался это приложить, давно больно было. Поэтому не могу сказать -- можно ли было то дело перепроектировать полностью. Так как иначе -- пришлось бы этим классам делать большую толпу функций-членов и почти всех почти всем делать друзьями.

HZ> Т.ч. похоже, все-таки, что with в С++ является избыточной синтаксической HZ> конструкцией. Желание иметь ее, видимо, продиктовано привычкой. Я на В C++ - да. Но учитывая то, что многие его используют как "хороший С" (за неимением оного), т.е. C с inline и с перегрузкой функций, то with может и не помешал бы.

HZ> Кроме того в С++ еще имеются пространства имен и в некоторых случаях HZ> удобнее HZ> использовать их - получается почти то же самое, что и с with, если with работает с _экземпляром_ т.е. с одним из _многих_ объектов.

HZ> поместить все HZ> эти имена в одно пространство имен, а потом для краткости написать слова HZ> using namespace и пользоваться короткими именами. А это выйдет короткое именование _одного_ набора переменных, а не полей одной из многих записей.

Wbr,

Reply to
Oleksandr Redchuk

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.