|
|
|
интервью
|
|||
|---|---|---|---|
|
#18+
ErV Просто при ковырянии в некоторых сишных исходниках у меня создалось впечатление, что все-таки применяется ООП, хотя самого понятия класса (в духе C++) в языке нет. Применяется :) И применялось ЗАДОЛГО до ООП ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 15:10 |
|
||
|
интервью
|
|||
|---|---|---|---|
|
#18+
ErV Gluk (Kazan) wrote: > Я не против ООП, но подобные фразы следует воспринимать скептически. > 100000 строк не бог весть какой объем для нынешнего проекта (и далеко не > все придерживаются ООП при разработке). А Бучу было интересно ПРОДАТЬ свою > книгу. Вопрос. Под структурным программирование имеется в виду вот это ? Просто при ковырянии в некоторых сишных исходниках у меня создалось впечатление, что все-таки применяется ООП, хотя самого понятия класса (в духе C++) в языке нет. К примеру: объявляется структура, содержащая некоторые данные, и куча функций, которые берут указатель на структуру первым параметром, и имеют имя по типу ИмяСтруктуры_КакоеТоДействие. Ну чем не класс с методами? При большом объеме программы она дробится на модули, и каждый модуль опять же может восприниматься как объект. О наследовании и прочем, само собой, речи нет (хотя в случае с модулями может быть объявлен общий интерфейс для работы с ними, и получится аналог наследования), но то, что сама программа мыслится понятиями, это уже интересно - т.е. (ИМХО) не всегда это можно обозвать "структурным программированием", согласно описанию в линке. Posted via ActualForum NNTP Server 1.4 Не смотря на то, что функция может иметь имя в виде ИмяСтруктуры_КакоеТоДействие, это все же не запрещает ошибиться и передать указатель не на те данные. Класс, как мне видится, оберегает от подобных ошибок, ну а взаимодействие методов и данных внутри класса выглядит как обычное структурное программирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 17:15 |
|
||
|
интервью
|
|||
|---|---|---|---|
|
#18+
ErVПросто при ковырянии в некоторых сишных исходниках у меня создалось впечатление, что все-таки применяется ООП, хотя самого понятия класса (в духе C++) в языке нет.А что в этом могут быть сомнения? Объектное программирование и объектные языки это две совершенно независимые вещи. Объектно можно писать на любом языке, впрочем и процедурно тоже можно писать на любом языке. Хоть на том же Смолтоке, положи весь алгоритм в один единственный объект, и сделай всю логику на методах этого одного единственного объекта - получишь объектный язык с необъектным программированием :) ErV К примеру: объявляется структура, содержащая некоторые данные, и куча функций, которые берут указатель на структуру первым параметром, и имеют имя по типу ИмяСтруктуры_КакоеТоДействие.Ну нафиг. Это неудобно. Лучше положить первым элементом структуры тип объекта и в функциях проверять его. Получаешь одну единственную публичную функцию которая в зависимости от первого элемента структуры запустит нужную приватную функцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 19:41 |
|
||
|
интервью
|
|||
|---|---|---|---|
|
#18+
White OwlА что в этом могут быть сомнения? Объектное программирование и объектные языки это две совершенно независимые вещи. Объектно можно писать на любом языке, впрочем и процедурно тоже можно писать на любом языке. Хоть на том же Смолтоке, положи весь алгоритм в один единственный объект, и сделай всю логику на методах этого одного единственного объекта - получишь объектный язык с необъектным программированием :) Ага, вопрос только в количестве сломанных копий. На коком-нибудь фортране это делать крайне неудобно White Owl Ну нафиг. Это неудобно. Лучше положить первым элементом структуры тип объекта и в функциях проверять его. Получаешь одну единственную публичную функцию которая в зависимости от первого элемента структуры запустит нужную приватную функцию. Ага и switch трехэтажный, фуууу. Лучше уж как у ErV ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 20:49 |
|
||
|
интервью
|
|||
|---|---|---|---|
|
#18+
blindedАга, вопрос только в количестве сломанных копий. На коком-нибудь фортране это делать крайне неудобноНе понял. Зачем копья ломать? И почему вдруг на фортране это делать неудобно? blinded White OwlНу нафиг. Это неудобно. Лучше положить первым элементом структуры тип объекта и в функциях проверять его. Получаешь одну единственную публичную функцию которая в зависимости от первого элемента структуры запустит нужную приватную функцию. Ага и switch трехэтажный, фуууу. Лучше уж как у ErVНет, свитч лучше. С ним прикладнику проще жить. Потому что свитч спрятан внутри библиотеки и его пишет/поддерживает создатель библиотеки. При написании уже конечного продукта не нужно будет заботиться о том чтобы помнить все эти имена функций. Достаточно будет одного SetCaption а не SetCaption_Label, SetCaption_Button. Полиморфизм в чистом виде. А то что он делается в ран-, а не в дизайн-тайме это на современных процессорах уже не так уж важно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 21:29 |
|
||
|
интервью
|
|||
|---|---|---|---|
|
#18+
blinded wrote: > Лучше уж как у ErV Это не у меня :) Я просто такое где-то видел, и как наглядный пример привел. По сути это то же самое, что происходит в C++ при передаче this, только передача прописывается вручную... Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 22:01 |
|
||
|
интервью
|
|||
|---|---|---|---|
|
#18+
как это делается в гтк http://gtk.org/tutorial/c451.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2007, 14:42 |
|
||
|
интервью
|
|||
|---|---|---|---|
|
#18+
А вот так например это делается в Фотоне :) http://www.qnx.com/developers/docs/6.3.0SP3/photon/lib_ref/pt/ptcreatewidget.html Один из самых продуманых гуев... Очень жалею что его никуда не портировали. Коммерческие лицензии особенно на библиотеки это зло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2007, 19:36 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34629732&tid=2028579]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
150ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 209ms |
| total: | 463ms |

| 0 / 0 |
