Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];




Вниз

И когда это вы все всё успеваете? 


lipskiy   (2002-03-13 04:10) [0]

Я вот стал в конференциях больше сидеть - работа стала и не движется совсем. Благо инета халявного прибавилось, затягивает, зараза. А тут, я погляжу, народ безвылазно сидит. Ладно бы лажа какая-нибудь обсуждалась на отвлеченные темы и котингент бы был из разряда дорвавшихся до инета "остроумных" и недалеких подростков. Но ведь темы-то непростые, да и народ опытный и мудрый. Когда ж это вы успеваете опыта своего набираться?
Я вот сел код писать, уткнулся в проблему, полез в конференцию, кинул вопрос и застрял тут надолго. Надо бы вылезть да работать дальше - а никак! Интересно! Вот и непонятно, конфа эта повышает производительность труда получаемыми знаниями, или снижает отнимаемым временем :)



panov   (2002-03-13 07:34) [1]

Сначала отнимает время.:-)
А вот когда поотвечаешь и поспрашиваешь, поищешь самостоятельно ответы на вопросы, то качественно улучшается твой код.
Как насчет производительности, трудно сказать. Это чисто индивидуально.



Alx2   (2002-03-13 08:52) [2]

panov © (13.03.02 07:34)
Не хорошо лишь то, что возникающие свои вопросы слишком специфичны, чтобы задать их в форуме. :(



lipskiy   (2002-03-13 09:28) [3]

2 Alx2
А мне кажется, что это без ограничений. Как раз специфичное здесь любят больше, чем отвечать на одинаковые чайниковские (чтобы не обидеть никого словом "ламерские", в т.ч. и себя) вопросы.



wicked   (2002-03-13 09:34) [4]

2 lipskiy © (13.03.02 09:28)
вот уж не скажите.. иногда такие вопросы появляются, что токмо самому и решать...
сомневаюсь, например, что кто-то мне посоветует, как лучше организовать взаимодействие систем учёта расчётов за электроэнергию и учёта электросчётчиков.. :)



Alx2   (2002-03-13 09:37) [5]

>lipskiy © (13.03.02 09:28)
Так и не решился вопрос. http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1013590689&n=5
Хотя, с другой стороны, он принял чисто теоретическое значение.



lipskiy   (2002-03-13 09:38) [6]

2 wicked
Так это называется скорее не "специфичный", а слишком "общий", глобальный вопрос, на такой впору статью писать, а не в форуме отвечать :)



Виктор Щербаков   (2002-03-13 09:50) [7]

Alx2 © (13.03.02 09:37)
Вопрос интересный, но требует того, чтобы отвечающий воспроизвел у себя всю ситуацию, исследовал генерируемый код (если понадобится). А всё это отнимает некоторое время (большее чем при ответах на другие вопросы).



Alx2   (2002-03-13 09:58) [8]

>Виктор Щербаков © (13.03.02 09:50
Это я прекрасно понимаю. Потому и говорю о специфичных вопросах, потому и не жужжу :))



VuDZ   (2002-03-13 10:11) [9]

люди, расскажите по секрету:
в делфи сожно сделать приведения любого типа?

т.е. примерно так:
classA a;
classB b;
a = b;

т.е. можно ли переопределить операторы присвоения для классов?

в С++ я пишу

class A
{
public:
A& operator =(B &b);
protected:
private:
};

а в Делфи так мона?

PS вот такие тут вопросы абсуждаюдся :>
PPS и ещё неплохо бы ответ услышать :D



Alx2   (2002-03-13 10:15) [10]

>VuDZ © (13.03.02 10:11)
>т.е. можно ли переопределить операторы присвоения для классов?
Оператор переопределить нельзя. Но можно написать метод, который будет делать работу оператора.



Fellomena   (2002-03-13 10:23) [11]

2 Alx2:
мне казалось, что в Delphi перегрузка таких операторов возможна... или нет ?
(если я вообще правильно поняла о чём речь ;)



Alx2   (2002-03-13 10:29) [12]

>Fellomena (13.03.02 10:23)
Может, в D6 можно стало?



VuDZ   (2002-03-13 10:29) [13]

просто мя пишу код. который потом должен будет портироваться под Делфи. Вот и оглядываюсь всё время, приходиться писать на С, а не С++ :<

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

2Alx2
мне нужно именно оператор перегрузить. Я бы всё сделал и через Assign() или как нибудь ещё назвал, но это будет смотреться некрасиво



VuDZ   (2002-03-13 10:31) [14]

что-то у меня backspace не работал :< /эх, такая хорошая клава была/
но я думаю всё понятно....



Виктор Щербаков   (2002-03-13 10:37) [15]

Переопределить операции для классов в D5 точно нельзя, да и в D6 вроде нет такого. На сколько я знаю, это возможно во Free Pascal.



VuDZ   (2002-03-13 10:45) [16]

блин



limon   (2002-03-13 11:18) [17]

> VuDZ
В Дельфе перегрузка операторов встроена в язык ТОЛЬКО для строковых типов!!! Для других типов этот механизм не работает.
Единственно, можно перегружать процедуры :(
Так что, можно писать на плюсах, но без перегрузки операторов.



VuDZ   (2002-03-13 11:28) [18]

это уже не С++, а С - шаблонов нема, перегрузок нема... ну да и ладно



vuk   (2002-03-13 11:42) [19]

to VuDZ:
>это уже не С++, а С
Не то и не другое. Это Object Pascal. :o) Насчет перегрузки. Это все дело привычки, и на мой взгляд программа без таких вещей получается более читабельной, поскольку не нужно помнить - кто и где переопределил оператор и что в результате получится. Хотя это иногда и облегчает работу тому, кто пишет, тому кто, возможно, будет работать с кодом потом придется не сладко.

А вот насчет шаблонов (и вообще generic programming) Вы правы, этой возможности сильно не хватает. Это все неоднократно обсуждалось в форумах на Borland, но сдвигов в лучшую сторону пока не видно. :o(



drpass   (2002-03-13 12:02) [20]

А мне вот непонятен такой вопрос:
В Объектном Паскале нет перегрузки операторов
В Объектном Паскале нет шаблонных классов
В Объектном Паскале нет множественного наследования
А зачем все это? Неужели существуют такие задачи, решение которых, при программировании на Объектном Паскале, может быть упрощено при использовании одной из вышеперечисленных технологий?
Скорее всего, это недостаток для программистов на C++, которые, перейдя на Паскаль, чувствуют себя "в чужой среде". Адаптация длится не меньше года :)



Fellomena   (2002-03-13 13:17) [21]

vuk © (13.03.02 11:42):
Не то и не другое. Это Object Pascal. :o) Насчет перегрузки.

Хм, перегрузка операторов и ф-ий в С++ imho более гибкая, чем в Паскале, и в С++ это появилось, вроде как, раньше чем в Паскале, так что не надо говорить, что перегрузка присуща только OP :)

2 drpass © (13.03.02 12:02):
если ты ниразу не работал с STL, то это не значит, что это недостаток языка ! Некоторые задачи гораздо более эффективно решаются именно при использовании перечисленных тобою механизмов.
Множественное наследование хоть и является потенциальным герератором ошибок (в Delphi кстати можно добиться того же используя интерфейсы или определяя поле одного класса как ссылку на другие класы), но в некоторых ситуациях легче применить его, нежели писать новый клас, включающий в себя поля и методы трёх других 8\


Но всё это скоро перейдёт в банальный спор о преймуществах и недостатках языков программирования 8(



lipskiy   (2002-03-13 13:41) [22]

бррр...



vuk   (2002-03-13 14:26) [23]

to drpass:
Из всего перечисленного Вами реально необходимыми вещами можно назвать только шаблонные классы. Остальное - под большим сомнением. Про перегрузку операторов и обобщенное программирование я уже высказался.

Теперь по поводу множественного наследования. В OP есть интерфейсы и их концепция гораздо более логична. Поддержка классом интерфейса соответствует понятию роли, которую объект может выполнять. Чему соответствует множественное наследование?

Кстати, я уже неоднократно писал о том, что налицо тенденция - во всех новых языках (OP, Java, C#, B) отсутствует множественное наследование и присутствуют интерфейсы. Ой, неспроста это всё. Кажется, любителям множественного наследования есть повод задуматься... :o)

to Fellomena:
>не надо говорить, что перегрузка присуща только OP
=8-[ ]
Я это писал? Цитату в студию!



wicked   (2002-03-13 14:48) [24]

2 lipskiy © (13.03.02 09:38)
да нет, не общий вопрос.... могу в деталях поспрашивать, всё упирается во взаимодействие между 2-мя БД под mssql... :) но не буду, я гордый... :))

2 ALL
моё большое ИМХО, в OP я бы перенёс перегрузку операторов a-la Free Pascal... и шаблоны из Це++... большего для счастья и не надо...



Alx2   (2002-03-13 14:57) [25]

Короче говоря, нужен язык в стиле Open Tools. Перекроили его как хотели, а потом стали искать глюки в программе/перекроенном языке



Fellomena   (2002-03-13 15:14) [26]

Ксатати, братцы, наверняка вы слышали, что папа MVС++ вот-вот собирается выпустить D, который, по его замыслу, будет лишён недостатков С++
И угадайте ЧЕГО там точно не будет ! - множественного наследования 8)
Вот так вот... :)



Andrey   (2002-03-13 15:20) [27]

>Fellomena
D - это сокращение от Delphi
Вот так вот... :)



vuk   (2002-03-13 15:24) [28]

to Fellomena:
Только папа не MVC++, а Zortech C++. Я про это как раз и писал, когда говорил о тенденциях. Там нет множественного наследования и есть интерфейсы.

Ссылочка: http://www.digitalmars.com/d/



Fellomena   (2002-03-13 15:31) [29]

2 vuk © (13.03.02 15:24):
возможно в "папах" я ошиблась 8)
Про D я в Программисте читала пару месяцев назад.

2 Andrey: оТлИчНо !!! 8)))



Merlin   (2002-03-13 15:43) [30]

test



Andrey   (2002-03-13 15:45) [31]

В результате теста выявлен Merlin ;)



lipskiy   (2002-03-13 16:20) [32]

Ура!
Мерлин что-то меняет.
Скоро жить станет интереснее!



VuDZ   (2002-03-13 16:31) [33]

test complete, node killed :D

теперь по порядку:

> Не то и не другое. Это Object Pascal. :o)

вот именно. Я системщик и привык к фичам С и С++, и теперь отвыкать сложно


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

Не скажи - если ещё не переопределить, то, например классы содержащии указатели просто побитно копируются и всё... Вещь очень мощная


> Хм, перегрузка операторов и ф-ий в С++ imho более гибкая,
> чем в Паскале, и в С++ это появилось, вроде как, раньше
> чем в Паскале, так что не надо говорить, что перегрузка
> присуща только OP :)

Правильно. Можно вплоть до allocator"ов переопределить и оператора new, что иногда позволяет выиграть в скорости и пр.


> если ты ниразу не работал с STL, то это не значит, что это
> недостаток языка ! Некоторые задачи гораздо более эффективно
> решаются именно при использовании перечисленных тобою механизмов.

во многих прогах используются std::map, std::vector - это то, чего мне очень не хватает в C#. Просто привычка. Да, я могу написать код, который будет обходиться и без них, но зачем изобретать колесо? Если сортировку можно сделать элементарно - std::sort, и прочие вещи.



> Но всё это скоро перейдёт в банальный спор о преймуществах
> и недостатках языков программирования 8(

Тогда я буду первым о закрытие этой ветки :>



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

Множественно наследование - ну не знаю. У меня встречается крайне редко, но во многих прикладный программах встречается очень часто. Вероятно всё дело в том, что С и С++ - сстемные языки использую в прикладных целях. А как и взрывчатка, он может в умелых руках делать то что надо, а может и калечить всё вокруг


> Кстати, я уже неоднократно писал о том, что налицо тенденция
> - во всех новых языках (OP, Java, C#, B) отсутствует множественное
> наследование и присутствуют интерфейсы. Ой, неспроста это
> всё. Кажется, любителям множественного наследования есть
> повод задуматься... :o)

Всё можно сделать и ручками :>


> моё большое ИМХО, в OP я бы перенёс перегрузку операторов
> a-la Free Pascal... и шаблоны из Це++... большего для счастья
> и не надо...

:up:


> Ксатати, братцы, наверняка вы слышали, что папа MVС++ вот-вот
> собирается выпустить D, который, по его замыслу, будет лишён
> недостатков С++
> И угадайте ЧЕГО там точно не будет ! - множественного наследования
> 8)
> Вот так вот... :)

Ну и фиг с этим - С++ останеться самым распространённым языком ещё минимум лет 10, а потом, может быть вернёться к истокам - к системщикам



vuk   (2002-03-13 16:50) [34]

to VuDZ:
>Не скажи - если ещё не переопределить, то, например классы
>содержащии указатели просто побитно копируются и всё... Вещь
>очень мощная
Я немного не про это. Я не спорю, вещь очень мощная. Я писал о том, что за простой с виду операцией присваивания может крыться все что угодно. И не всегда очевидно - что именно.

>Можно вплоть до allocator"ов переопределить и оператора new,
>что иногда позволяет выиграть в скорости и пр.
В OP тоже можно переопределить схему распределения памяти для экземпляров. Только другим способом.



wicked   (2002-03-13 17:07) [35]

2 vuk ©

> Я писал о том, что за простой с виду операцией присваивания
> может крыться все что угодно. И не всегда очевидно - что
> именно

а что же еще может крыться, если не присваивание?.... :)
если, конечно, ты не разбираешь код маньяка-садиста, который зностно понаоставлял граблей повсюду... :)



VuDZ   (2002-03-13 17:15) [36]

но с той же точки зрения можно подхродить и к properties -

__declspec(property(get=get_State, put=set_State)) int nState [];
inline int get_State(int index) { return m_nStates[index]; }
inline void set_State(int index, int value) {
m_nStates[index] = value;
m_bNew[index] = true;
SetEvent(m_hSomethingNew);
}


вроде безобидная операция nState[i] = SOME;
а при это происходит много интересного :>
так то все места, где что-то может скрываться заширмой простоты - является потенциаьным носителем подводных камней (во загнул :> )



vuk   (2002-03-13 17:32) [37]

to wicked:
>если, конечно, ты не разбираешь код маньяка-садиста, который
>зностно понаоставлял граблей повсюду... :)
Осталось только научиться их (маньяков) различать до того, как нарвешься на грабли. Хотя, это работа у нас такая - по граблям ходить. :o)

to VuDZ:
>но с той же точки зрения можно подхродить и к properties
Совершенно верно. Только вот, концепция свойств несколько иная. Свойство управляет доступом к чему-то, чем владеет экземпляр. Перегрузка же операторов меняет смысл операции, производимой над самим экземпляром.
Да и по возможностям свойства от перегрузки операторов отличается где-то в лучшую сторону, а где-то - в худшую.



VuDZ   (2002-03-13 17:48) [38]

да, но ведь в тех же свойтсвах может происходить изменение многих параметров, а не одного.


> Перегрузка же операторов меняет смысл операции, производимой
> над самим экземпляром.

но позволяет обойтись без ф-ий типа A = Convert2A(B);



iZEN   (2002-03-13 23:47) [39]

Лично я "отрываюсь" в конференциях. Побазарить с умными людьми просто приятно. :))



VuDZ   (2002-03-13 23:52) [40]

то же верная мысль...
особенно хорошо во флейме - можно и не в тему сказать что-то



drpass   (2002-03-14 00:47) [41]

И все-таки мою мысль вы не поняли. Я вот что имел в виду:
когда привыкаешь к конкретному языку программирования, то весь алгоритм изначально строишь, ориентируясь только на его средства. И каких-либо недостатков не замечаешь. Их может заметить только сторонний программист, владеющий другим языком - который использует при написании программ другие приемы и технологии.
А так как я уже года два работаю преимущественно на Паскале, то свободно обхожусь его возможностями, и не замечаю никаких ограничений. А при работе на С++ меня сильно напрягает необходимость одну руку постоянно держать на шифте :)



VuDZ   (2002-03-14 01:39) [42]


> А при работе на С++ меня сильно напрягает необходимость
> одну руку постоянно держать на шифте :)

зачем? :D


> когда привыкаешь к конкретному языку программирования, то
> весь алгоритм изначально строишь, ориентируясь только на
> его средства. И каких-либо недостатков не замечаешь.

по-моему мало кто из профи знает только один язык. Но мысль верна. Например Форт очень сильно менять философию, когда в нём разбираешся. С++ - тоже - привыкаешь к STL, перегрузкам и пр., и всё... И действительно алгоритм уже начинает вырисовываться на уровне отдельных частей языка.



Suntechnic   (2002-03-14 04:12) [43]

Ну вы даёте... Вот так открываешь ветку и понятия не имеешь на что наткнёшься внутри :) Хотя с другой стороны приятно: 42 поста, а на флейм Delphi vs C++ ещё не перешли... придётся ещё подождать :)

>VuDZ © (14.03.02 01:39)
>> А при работе на С++ меня сильно напрягает необходимость
>> одну руку постоянно держать на шифте :)
>зачем? :D
Наверное он имел ввиду регистро-зависимость языка? ;)

Лично для меня язык программирования это как вид спорта- т.е. спорт любишь весь, но какой-нибудь из видов особенно.



VuDZ   (2002-03-14 04:43) [44]


> а на флейм Delphi vs C++ ещё не перешли... придётся ещё
> подождать :)

не дождётесь :>
мы тихо, культурно, между делом обсуждали пару вопросов, а то сразу - holywar, holywar :D


> Наверное он имел ввиду регистро-зависимость языка? ;)

да это ясно - я в форумах отдыхаю от этого


> т.е. спорт любишь весь, но какой-нибудь из видов особенно.

Литрбол и ба....ей :D

ну и мысли лезут в голову в пол пятого утра :>>>




Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.84 MB
Время: 0.041 c
1-69927           Dimaiv                2002-04-09 19:58  2002.04.22  
Где ошибка вот в таком коде


1-69819           Nikit                 2002-04-08 12:58  2002.04.22  
save/load to/from file


14-70020          ASM                   2002-03-16 01:01  2002.04.22  
Профессианальная Помощь нужна!


3-69656           Артём                 2002-04-02 19:42  2002.04.22  
Вопрос по триггерам


1-69773           VJar                  2002-04-10 00:42  2002.04.22  
Небольшой почтовый проект