Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Вниз

Delphi vs. C++   Найти похожие ветки 

 
Акуличев Дмитрий   (2004-09-06 19:40) [160]


> Ермак ©   (06.09.04 19:31) [156]
> Народ, а все таки: ЧТО ТАКОЕ ОБЕРОН?


http://www.oberon.ethz.ch/


 
jack128 ©   (2004-09-06 19:41) [161]

Ozone ©   (06.09.04 13:04) [67]
GrayFace ©   (06.09.04 18:37) [140]
Ребят, вы смайлики замечаете?? Я вообще эту ссылку на форуме Юмор на rsdn подобрал..

Ермак ©   (06.09.04 19:31) [156]
Язык Вирта. на Королевстве огромный флейм ему посвещен..

> Суслик ©  
на счет времени жизни интерфейсов..

 TSimpleIntfObject = class(TObject, IUnknown)
 protected
   { IUnknown }
   function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
   function _AddRef: Integer; stdcall;
   function _Release: Integer; stdcall;
 end;

function TSimpleIntfObject._AddRef: Integer;
begin
 Result := -1;
end;

function TSimpleIntfObject._Release: Integer;
begin
 Result := -1;
end;

function TSimpleIntfObject.QueryInterface(const IID: TGUID;
 out Obj): HResult;
const
 E_NOINTERFACE = HResult($80004002);
begin
 if GetInterface(IID, Obj) then Result := 0 else Result := E_NOINTERFACE;
end;

var
 obj: TSimpleIntfObject;
 intf: IUnknown;
begin
 obj := TSimpleIntfObject;
 obj.GetInterface(IUnknown, intf);
end; // интерфейс помер, а объект живет..


 
GrayFace ©   (2004-09-06 19:44) [162]

Игорь Шевченко ©   (06.09.04 16:05) [107]
> Да и без макроподстановок в Дельфи как без рук.
Эт еще нафига ?

Для return, например. Без него тяжко.

Суслик ©   (06.09.04 16:11) [109]
А также то, что ты идеалист.

Это точно.

Игорь Шевченко ©   (06.09.04 16:32) [115]
А с самого начала писать проект так, чтобы не наступать на грабли, не проще ли ? И в компиляторе ничего менять не надо...

Не все программисты идеальны. Не все ХОРОШИЕ программисты идеальны - и у них бывают ошибки в проектировке.

Григорьев Антон ©   (06.09.04 16:51) [118]
Не выворачивай все наизнанку. Delphi создавался для того, чтобы программисты вообще не думали. В нем просто меньше возможностей объектного программирования, поэтому в нем сложна переделка программ. Но, по уму, в C++ желательно проектировать не меньше.

Игорь Шевченко ©   (06.09.04 18:40) [141]
Что именно ужасного в указателях в паскале ?

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

Verg ©   (06.09.04 19:05) [145]
На моей памяти это 3 случай после DiamondShark и ветки на Дремучих о взломанности этого сайта. Рулят такие обсуждения, ИМХО, даже не знаю, почему.

Акуличев Дмитрий   (06.09.04 19:17) [148]
Во-первых, ответ уже содержится в этой ветке, во-вторых, я предлагал словарик почитать.

Я ветку читал. Ответ нету. Все твои слова на эту тему - это че-то типа "это так и если вы утверждаете обратное (хаха), то это так, как я сказал".
Модуль -- единица инкапсуляции. Нэймспейс -- нет.
И что? Ну не удобно же все лепить в один модуль. Namespace - ед. инкапсуляции, модуль - частный случай Namesapace.

>Это абсолютно кю.
> Геморрой начинается там, где кончается понимание.

Интерфейсов по-нормальному зделана в Java - там это вообще не сущьность, а как-бы класс объекта, но без методов. COM-интерфейсы для таких нужд мало пригодны, а множественное наследование - очень даже.

А вот переопределение операций -- действительно геморрой.
Так, как это сделано в C++ - да, согласен.

Ермак ©   (06.09.04 19:25) [152]
Ой ли? Никто не заставляет человека это использовать, но в некоторых случаях это очень удобно.
А если юзеру приспичит одному объекту присвоить другой по значению?


 
vuk ©   (2004-09-06 19:48) [163]

to Суслик:
Зря так на Акуличева. Он может немного и резко высказался, но во всем прав.

to GrayFace ©   (06.09.04 19:44) [162]:
>Namespace - ед. инкапсуляции, модуль - частный случай
>Namesapace.
В C++ Namespace - не единица инкапсуляции, а средство борьбы с конфликтами имен в больших программных комплексах. Придумано исключительно из-за отсутствия модульности, т.к. при наличии этой самой модульности пространства имен в понимании C++ нафиг не нужны.


 
Суслик ©   (2004-09-06 19:48) [164]


> GrayFace ©   (06.09.04 19:44) [162]


> Что именно ужасного в указателях в паскале ?
> К ним ничего нельзя прибавить. Единственный способ - inc,
> но в выражениях он не работает.


Ты не прав - приобразуй к integter и прибавляй, затем к pointer

pointer(Integer(p) + 1)


 
GrayFace ©   (2004-09-06 19:49) [165]


> Но, по уму, в C++ желательно проектировать не меньше.

В смысле, предварительно.

> а множественное наследование - очень даже.

ИМХО, множественное наследование - это круто. Зря его заменили интерфейсы. Но все мои слова о C++ - это очень ИМХО... я на нем не програмировал, но от отца наслышан.


 
Ермак ©   (2004-09-06 19:50) [166]

>А если юзеру приспичит одному объекту присвоить другой по значению?

А запретить кто мешает? Приватным-то переопределнием операции?


 
GrayFace ©   (2004-09-06 19:52) [167]

Суслик ©   (06.09.04 19:48) [164]
Ты не прав - приобразуй к integter и прибавляй, затем к pointer

pointer(Integer(p) + 1)


Так и приходится. Но это как begin end - хлам, загромождающий программу. Уменьшает читабильность(begin end кому-то читабильность, может, и увеличивает), заставляет писать море лишних слов.


 
vuk ©   (2004-09-06 19:58) [168]

to GrayFace ©   (06.09.04 19:52) [167]:
>Так и приходится.
Пишите PChar вместо Pointer и будет Вам щщщщастье.


 
Суслик ©   (2004-09-06 19:59) [169]

Удалено модератором


 
GrayFace ©   (2004-09-06 20:00) [170]

vuk ©   (06.09.04 19:58) [168]
Спасибо. Буду использовать. Вот только к PInt все-равно ничего не прибавить.


 
Суслик ©   (2004-09-06 20:00) [171]

Я вообще первый раз участвую в ХОЛИ ВОР.

Они всегда так заканчиваются?


 
vuk ©   (2004-09-06 20:01) [172]

to Суслик ©   (06.09.04 19:59) [169]:
>Его манера высказываться не располагает
>меня к нормальной беседе.
Можно манеру игнорировать, но следить за смыслом. :o) А со смыслом там все OK. И по времени жизни интерфейсов - тоже.


 
GrayFace ©   (2004-09-06 20:01) [173]

vuk ©   (06.09.04 19:48) [163]
Зря так на Акуличева. Он может немного и резко высказался, но во всем прав.

8-0


 
Суслик ©   (2004-09-06 20:01) [174]


> GrayFace ©   (06.09.04 20:00) [170]

Может и не надо ничего прибавлять?
Средства в дельфи есть, а т.к. согласись операция не настолько частая, то их (средств) вполне достаточно. ИМХО.


 
Sergey Kaminski ©   (2004-09-06 20:02) [175]

>> Они всегда так заканчиваются?

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


 
Суслик ©   (2004-09-06 20:03) [176]


> vuk ©   (06.09.04 20:01) [172]

Про время жизни, согласен.
Понимаешь там на каком то этапе ИШ подключился. Он уважаем разные нотации записи ООП. Я что-то переключился на бучевствое определение интерфейса. Бывает...


 
Суслик ©   (2004-09-06 20:04) [177]


> Sergey Kaminski ©   (06.09.04 20:02) [175]


> Да, они начинаются и заканчиваются всегда одинаково. Все
> расходятся по углам, надувшись. И так до следующего раза.

Жаль...
Я бы очень хотел пообщаться с вменяемым человеком на предмет обсуждения Дельфи и Си.


 
GrayFace ©   (2004-09-06 20:04) [178]

Суслик ©   (06.09.04 20:01) [174]
Нет. Это неудобство, ничем не обоснованное. Я люблю работать с указателями, тем более, это очень сильно увеличивает скорость.


 
uny   (2004-09-06 20:05) [179]

ну а кто виноват - впечатлительный или его препод?


 
Суслик ©   (2004-09-06 20:06) [180]

Удалено модератором


 
Акуличев Дмитрий   (2004-09-06 20:08) [181]


> GrayFace ©   (06.09.04 19:52) [167]
> Суслик ©   (06.09.04 19:48) [164]
> Ты не прав - приобразуй к integter и прибавляй, затем к
> pointer
>
> pointer(Integer(p) + 1)
>
> Так и приходится. Но это как begin end - хлам, загромождающий
> программу. Уменьшает читабильность(begin end кому-то читабильность,
> может, и увеличивает), заставляет писать море лишних слов.

А с чего это вдруг у тебя в программе такие операции появляются?


 
Суслик ©   (2004-09-06 20:08) [182]


> GrayFace ©   (06.09.04 20:04) [178]

Если ты пользуешься ansi строками, дин массивами и штатным манагером памяти обсолютно для всех целей, то о скорости говорить не приходится. Выигрышь в прибавлении чисел к поинтерам будет мал.

И даже не имхо.


 
Ермак ©   (2004-09-06 20:11) [183]

Удалено модератором


 
jack128 ©   (2004-09-06 20:13) [184]

Суслик ©   (06.09.04 20:08) [182]
Если ты пользуешься ansi строками, дин массивами и штатным манагером памяти обсолютно для всех целей, то о скорости говорить не приходится. Выигрышь в прибавлении чисел к поинтерам будет мал.


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


 
Ермак ©   (2004-09-06 20:15) [185]

>>А с чего это вдруг у тебя в программе такие операции появляются?

А почему бы им не появляться? В коде, который должен быстро работать с тесктом, только ламер будет работать со стрингами, в другом случае - постоянно гоняешь PChar(string), и наоборот. И pointer++ -- - на каждом шагу.


 
Суслик ©   (2004-09-06 20:15) [186]


> Ермак ©   (06.09.04 20:11) [183]
> Игнорировать?
>
> Вообще-то такие места, натипа, удушу и т.п. обычно модерами
> вырезаются. Тогда можно их игнорировать сколько угодно...

Хе...


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

В данном случае ты не совсем прав. Есть еще виртуальная память.
В случае целевого еще использования (например, хранить млн блоков по 1024 байт ибольше ничего) производительность можно очено поднять. Проверял.


 
vuk ©   (2004-09-06 20:18) [187]

to Суслик ©   (06.09.04 20:06) [180]:
>К тебе сложно придаться - мало говоришь.
Ну дык. Золотое правило: молчи - за умного сойдешь. Вот я и стараюсь. :o)

>Но может когда нить найду и сразу в карьер
You"re welcome! :o)


 
Суслик ©   (2004-09-06 20:18) [188]


> jack128 ©   (06.09.04 20:13) [184]

Ты попробуй помучать дома штатный манагер:
1) создавать/удалять строки случайной длинны
2) созадвать/удалять блоки по 123 (например) байт.

Попробуй тоже самое написать для виртуальной памяти. Разница будет. Как по скорости, так и по оптимальности хранения. На каждый блок ты сможешь тратить менее 4 байт, как в штатном манагере.


 
Ермак ©   (2004-09-06 20:18) [189]

>>В данном случае ты не совсем прав. Есть еще виртуальная память.
>>В случае целевого еще использования (например, хранить млн >>блоков по 1024 байт ибольше ничего) производительность можно >>очено поднять. Проверял.

Если работаем с кусками больше чем пол-мега, надо использовать виндовские функции для резервирования страниц памяти. А иногда - mapped-files.


 
Суслик ©   (2004-09-06 20:19) [190]

Удалено модератором


 
Суслик ©   (2004-09-06 20:20) [191]


Ермак ©   (06.09.04 20:18) [189]
Если работаем с кусками больше чем пол-мега, надо использовать виндовские функции для резервирования страниц памяти

я же вроде говорил про виртуальную память?
Ты имеешь в виду другие страницы? Это что?


 
Акуличев Дмитрий   (2004-09-06 20:22) [192]


> Ермак ©   (06.09.04 20:15) [185]
> >>А с чего это вдруг у тебя в программе такие операции появляются?
>
> А почему бы им не появляться? В коде, который должен быстро
> работать с тесктом, только ламер будет работать со стрингами,
> в другом случае - постоянно гоняешь PChar(string), и наоборот.
> И pointer++ -- - на каждом шагу.

А для PChar как раз реализована адресная арифметика, работает и P+123, и inc(P), и P[i].

Меня больше необходимость этого для других типов интересует.


 
jack128 ©   (2004-09-06 20:23) [193]

Суслик ©   (06.09.04 20:18) [188]
Ты попробуй помучать дома штатный манагер:


Я сейчас дома ;-). Я отметил твой комментарий, просто сейчас лень :-) , но как нибудь поэксперементирую.


 
Суслик ©   (2004-09-06 20:24) [194]


> Меня больше необходимость этого для других типов интересует.

например ответить на вопрос на интервью при приеме на работу :))
видел такие вопросы.


 
Ермак ©   (2004-09-06 20:24) [195]

я же вроде говорил про виртуальную память?
Ты имеешь в виду другие страницы? Это что?

Я про то же самое. Не боись. Со времен ВИн95 у Микрософта фантазия иссякла. Нет бы еще какую нибудь супер-витруальную забабахать! "На вашем компьютере нет оперативной памяти. Включаем программную эмуляцию!"


 
Суслик ©   (2004-09-06 20:26) [196]


> jack128 ©   (06.09.04 20:23) [193]
> Я сейчас дома ;-). Я отметил твой комментарий, просто сейчас
> лень :-) , но как нибудь поэксперементирую.


уверен, тебя впечатлит штатный манагер. Но также впечатлит, тот факт, что в случае потребности некторые задачи можно ускорить очень сильно. И что самое главное задачи не будут зависеть от контекста (я имею в виду тот факт, что стоки, массивы, объекты также используют штатный манагер).


 
Nous Mellon ©   (2004-09-06 21:24) [197]

Удалено модератором


 
Игорь Шевченко ©   (2004-09-06 21:36) [198]

GrayFace ©   (06.09.04 19:44) [162]


> > Да и без макроподстановок в Дельфи как без рук.
> Эт еще нафига ?
> Для return, например. Без него тяжко.


Переведи пожалуйста свою глубокую мысль на понятный язык, можно на С++, можно на Delphi (это такой намек на пример в студию...)


> Не все программисты идеальны. Не все ХОРОШИЕ программисты
> идеальны - и у них бывают ошибки в проектировке.


Некоторые программисты отличаются еще чтением документации и изучением опыта других программистов. Оно рулез и источник знаний.


> Что именно ужасного в указателях в паскале ?
> К ним ничего нельзя прибавить. Единственный способ - inc,
> но в выражениях он не работает.


Ты будешь удивлен, но я опять попрошу проиллюстрировать глубокую мысль примером...


> Интерфейсов по-нормальному зделана в Java - там это вообще
> не сущьность, а как-бы класс объекта, но без методов. COM-интерфейсы
> для таких нужд мало пригодны, а множественное наследование
> - очень даже.


Опять же, поясни.

GrayFace ©   (06.09.04 19:49) [165]


> ИМХО, множественное наследование - это круто. Зря его заменили
> интерфейсы. Но все мои слова о C++ - это очень ИМХО... я
> на нем не програмировал, но от отца наслышан.


Я снимаю свои предыдущие просьбы. Для того, чтобы принимать участие в дискуссии, предмет дискуссии необходимо знать.
В ШКОЛУ!

Суслик ©   (06.09.04 20:03) [176]


> на счет времени жизни интерфейсов..


возьми объект, реализующий 2 интерфейса.


> Я что-то переключился на бучевствое определение интерфейса.
> Бывает...


В студию определение.

GrayFace ©   (06.09.04 20:04) [178]

> Я люблю работать с указателями, тем более, это очень сильно
> увеличивает скорость.


Чтобы перестать говорить чушь, открой окно CPU и посмотри генерируемый код.


 
Marser ©   (2004-09-06 21:45) [199]

Удалено модератором
Примечание: Offtopic


 
Sergey Kaminski ©   (2004-09-06 21:46) [200]


В коде, который должен быстро работать с тесктом, только ламер будет работать со стрингами


Я не стал бы заходить так далеко и называть брата "толстым" (с)



Страницы: 1 2 3 4 5 6 7 8 9 
10 11 12 13 14 15 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.83 MB
Время: 0.108 c
4-1093360437
Makhanev A.S.
2004-08-24 19:13
2004.10.03
Откуда здесь AV?


14-1095161630
Карелин Артем
2004-09-14 15:33
2004.10.03
Почем суппорт?


4-1093280647
v3l0m
2004-08-23 21:04
2004.10.03
Help me please! Перевидите чайнику на C++.


4-1093797216
DeMoN_Astra
2004-08-29 20:33
2004.10.03
Диалоговое окно - Вопроса


14-1095052068
DelphiN!
2004-09-13 09:07
2004.10.03
Путь к диалогу выполнить Windows-a





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский