Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
1-69846
f0rm
2002-04-08 22:59
2002.04.22
Регистрация собственного расширения


1-69874
Windeus
2002-04-09 04:29
2002.04.22
Импортирование ресурсов: шрифты, курсоры, иконки.


3-69747
совсем Новенький
2002-04-02 13:44
2002.04.22
Базы даных


3-69674
vopros
2002-03-29 10:59
2002.04.22
Как сделать ледующую фильтрацию.


3-69661
Canny
2002-04-02 00:00
2002.04.22
Как подключиться к базе MySQL?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский