Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Boris Barbaris 22 сентября 2003 г. 06:04
В ответ на: Ответ: отправлено trainer 21 сентября 2003 г. 10:55

--Ох уж эти неугомонные дельфипоклонники
"Эй вы, трое, идите оба ко мне, что смотришь, я тебе говорю!" ;-)

--Вы будете биться головой об стену, но я в BCB пишу:
Я пять раз специально в скобках написал, что пример приведен как ответ на С-шную конструкцию " *dst++=*scr++ ", приведенную в качестве верха изящества языка, обосновав тем самым, что простой знак "+" для работы со строками лучше и проще. А у Вас со зрением как-то не очень - то в глазах множится, то многократно (специально) повторенных фраз не видете.

--А если классы не реализуют COM? А Вы знакомы с ограничениями паскалевских интерфейсов?
А если бабушка была бы дедушкой? Ни разу еще не встречал действительной необходимости множественного наследования кроме как при реализации интерфейсов СОМ. Но ничто не мешает использовать интерфейсы (как основу СОМ) как интерфейсы классов (просто для повышения уровня сокрытия деталей реализации классов). Просветите по поводу немощи паскалевских интерфейсов, будьте любезны

--BigUnsigned<1000> a,b,c,d; // используем 1000-битную арифметику
--a = ((a+b)*c)&d;
--Попробуйте это же написать на ObjectPascal
Пожалуйста.
use BigUnsignedUnit; // используем модуль 1000-битной арифметики
var a,b,c,d: BigUnsigned; // тип из BigUnsignedUnit на основе Variant
a:=((a+b)*c) and d;
что Вы там писали по поводу битья головой об стену? ;-)

--А Вы в паскале в case используете исключительно диапазоны?
Поясняю. В Паскале (даже самом древнем Виртовском) можно написать
case C of
' ','%','#','@': ля-ля-ля; // тут ряд символов
'A'..'Z','a'..'z': тра-ля-ля;// тут несколько диапазонов
'0'..'9','-','_': тру-лю-лю; // тут и диапазон, и просто символы
else йо-хо-хо_и_бутылка_рома
end;
В С/С++/С# аналогичную языковую конструкцию Switch Вы применить не сможете, ибо затрахаетесь перечислять все буквы поодиночке. И придется Вам вместо простой и наглядной записи разбивать все это на ряд if-then-else. Аналогичная ситуация с множествами. В Паскале легко и наглядно пишется if C in ['A'..'Z','a'..'z''0'..'9','-','+','*','/'] then, в С/C++/C# то же самое делается более громоздкими конструкциями (обычно через ряд if или многоскобочных условий)

----костылям-шаблонам
--все, что Вам недоступно, объявлять кривым и уродливым
Если костыли, я так и пишу "костыли", зачем мне применять эвфемизмы

----Конструкторы-деструкторы в С++ безобразные. Нет никакой возможности назвать их именем, соответствующим выполняемой функции
--У конструктора задача одна - сконструировать объект, у деструктора - разрушить
Прочитайте еще раз фразу на которую отвечаете, и подумайте, насколько зрительно удобней и логически различимей при пробеге взглядом по чужому (да и своему) тексту "ABCD=class ... constructor Create; ... constructor CreateFormatted;... constructor CreateHidden; ... destructor Destroy;" по сравнению с "class ABCD ... ABCD ... ABCD ... ABCD ... ABCD ... ~ABCD"

--А никто и не заставляет сразу писать inline
--отказаться от ObjectPascal
Перечитайте еще раз текст, на который отвечаете. Там довольно доходчиво написано, что оптимизацией должен заниматься компилятор, а не программист со своими глупыми inline, увеличивающими производительность куска текста на 5% и программы в целом на 0.00005%

--Надеюсь, мои ответы не будут поводом к войне
"Теперь все в порядке, сэр - сказал король, отрубив головы членам парламента" ;-)

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru