Форум: "Потрепаться";
Текущий архив: 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]то же верная мысль...
особенно хорошо во флейме - можно и не в тему сказать что-то
Страницы: 1 2 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.009 c