-
- пример преимущества С++ можно ? - zeleny(08.06.2013 21:50)
- Да преимущество в любой программе - инкапсуляция данных называется. При объявлении класса сразу можно задать области видимости для методов и полей. А обращение к члену класса содержит имя объекта, что улучшает читабельность исходников. На простом Лeoнид Ивaнoвич(106 знак., 08.06.2013 22:12)
- Это стилистика, а не суть. В Си всё то же самое делается без особого геморроя. Си++ начинает отличаться от Си там, где начинаются виртуальные функции. Лучше про них расскажите. - SciFi(08.06.2013 22:16)
- инкапсуляция данных есть и в структурах. А ООП ИМХО нужен только там где нужен полиморфизм. В МК я такой нужды ни разу не испытывал. Префикс для функций мне не мешает. Только ради этого тянуть С++ ? - zeleny(08.06.2013 22:15)
- Так фактически класс это и есть структура, только в ней еще функции могут содержаться. А так да, только ради этого и тянуть. А какие минусы? - Лeoнид Ивaнoвич(08.06.2013 22:27)
- Минусы? Искушение замутить какую-нибудь объектно-заориентированную хрень и тут же в ней запутаться :-) - SciFi(08.06.2013 22:31)
- Так это замечательно - движение вперед. Со временем всё понадобится. На первых порах некоторые не понимают, зачем с ASM переходить на C :) - Лeoнид Ивaнoвич(08.06.2013 22:37)
- Ну, вы знаете, куда ведёт дорога, выстланная благими намерениями :-) - SciFi(08.06.2013 22:40)
- Все там будем. Но это не должно отменять стремления вперед. - Лeoнид Ивaнoвич(08.06.2013 22:50)
- Стремление вперёд - это хорошо. Но не любой ценой. Про здравый смысл не следует забывать. А так - ради бога :-) - SciFi(08.06.2013 22:54)
- Не любой, конечно. И на ASM что-то иногда приходится писать, и на Си. - Лeoнид Ивaнoвич(08.06.2013 23:00)
- Стремление вперёд - это хорошо. Но не любой ценой. Про здравый смысл не следует забывать. А так - ради бога :-) - SciFi(08.06.2013 22:54)
- Все там будем. Но это не должно отменять стремления вперед. - Лeoнид Ивaнoвич(08.06.2013 22:50)
- Ну, вы знаете, куда ведёт дорога, выстланная благими намерениями :-) - SciFi(08.06.2013 22:40)
- Так это замечательно - движение вперед. Со временем всё понадобится. На первых порах некоторые не понимают, зачем с ASM переходить на C :) - Лeoнид Ивaнoвич(08.06.2013 22:37)
- верно, и эти функции вызываются через таблицу вирт.методов. Зачем нужна лишняя прослойка ? Вместо CALL ADDR грузится адрес таблицы, из нее по смещению извлекается адрес функции, и потом идет вызов. - zeleny(08.06.2013 22:29)
- На Сях нужно долго и нудно объяснять компилятору то, что на С++ занимает пару строчек, и гораздо прозрачнее + проверка типов и синтаксиса там, где в Сях стерилизуют приведениями типов и указателями на void. - =AlexD=(09.06.2013 13:08)
- пример можно ? - zeleny(09.06.2013 13:09)
- Сами напишите, и сравните. Те самые таблицы функций. С контролем типов ессно :-)) - =AlexD=(09.06.2013 13:14)
- пример можно ? - zeleny(09.06.2013 13:09)
- Дык у него всё статическое, небось. - SciFi(08.06.2013 22:31)
- ну тогда и ООП не нужно. А писать prefix_fun или prefix.fun - имхо без разницы. ООП в АВР добавляет нехилый оверхед - инициализацию классов/объектов, и обслуживание динамической памяти - zeleny(08.06.2013 22:32 - 22:35)
- Думаю, что нужно. Кроме тех случаев, когда по условиям задачи слишком маленький проц. - Лeoнид Ивaнoвич(08.06.2013 22:38)
- ну тогда и ООП не нужно. А писать prefix_fun или prefix.fun - имхо без разницы. ООП в АВР добавляет нехилый оверхед - инициализацию классов/объектов, и обслуживание динамической памяти - zeleny(08.06.2013 22:32 - 22:35)
- На Сях нужно долго и нудно объяснять компилятору то, что на С++ занимает пару строчек, и гораздо прозрачнее + проверка типов и синтаксиса там, где в Сях стерилизуют приведениями типов и указателями на void. - =AlexD=(09.06.2013 13:08)
- Минусы? Искушение замутить какую-нибудь объектно-заориентированную хрень и тут же в ней запутаться :-) - SciFi(08.06.2013 22:31)
- В одной структуре могут быть как глобальные переменные, так и статические ? - _basile(08.06.2013 22:22)
- зачем ? Хватает локальных - zeleny(08.06.2013 22:24)
- Ага, и обращаться к ним только через функции (методы). Неоправданное разрастание кода и тормоза. - _basile(08.06.2013 22:45)
- Да, желательно. Я и теперь на Си ко всем переменным из других модулей обращаюсь только через интерфейсные функции модуля. - Лeoнид Ивaнoвич(08.06.2013 22:49)
- Я 10лет так поступал , надоело.В мелких проектах нах не надо это. - Plain_user(11.06.2013 17:44, )
- Свойства класса вполне могут быть доступны (видны) извне. А зачем проверять диапазон для, например, TRUE и FALSE ??? Оно, конечно, красота, _basile(41 знак., 08.06.2013 23:06)
- Именно. Порт через функцию, никак иначе. А вообще, тоже есть мысли на этот счет, но пока у меня всё через функции. Глаз радует, а процессору в курятнике всё равно делать нечего. Такая специфика проектов, ничего не поделать. - Лeoнид Ивaнoвич(08.06.2013 23:23)
- Или, к примеру, имеется объект BUTTON(кнопка). У него есть свойство Color. _basile(81 знак., 08.06.2013 23:12)
- Ога, а потом окажется, что изменение этого атрибута должно влиять на значение других атрибутов, и приплыли, всю программу перелопачивать. Фтопку. - =AlexD=(09.06.2013 13:04)
- Глупости не пишите. Изменение цвета кнопки - конечный результат наступления неких событий. На остальное должен влиять обработчик события, а не индикатор (цвет кнопки). _basile(190 знак., 09.06.2013 14:20 - 14:24)
- Таварищчь, если вы не в курсе, как работают дельфийные проперти, то не следует надувать щёки - глупо выглядит. - =AlexD=(09.06.2013 22:26)
- Я на дельфийные и не залупался (разуй глаза) чисто по BORLAND C++. _basile(35 знак., 10.06.2013 16:21)
- Ну не усугубляй, а то совсем дурачком выглядишь. Borland Builder это С++ подобная надстройка над дельфями, и стандарту соответствует постольку-поскольку, например весь boost им не собрать. Ну и проперти в нём реализованы в виде расширения =AlexD=(129 знак., 11.06.2013 16:49)
- Вот так бы сразу и сказал, что свойства объекта - расширение С++ и к стандарту никакого отношения не имеют. _basile(374 знак., 11.06.2013 17:49 - 17:55)
- Так это я для примера сказал, что можно диапазоны проверить. Вообще много чего делать можно. У TButton свойства Color нет, но вот, например, SetColor() для ScrollBar из VCL: Лeoнид Ивaнoвич(239 знак., 11.06.2013 18:10)
- Ой, это вообще-то Паскаль, похоже. С С++ на МК как связать ? - _basile(11.06.2013 18:15)
- Это кусок исходника одной из библиотек Borland C++, они у него на Паскале. К вопросу о том, что можно делать внутри метода SetColor. - Лeoнид Ивaнoвич(11.06.2013 18:20)
- В принципе всё тоже самое можно сделать и на чистом C++ без всяких расширений, даже какой-нибудь шаблон написать, но по факту весь этот геморрой никому не нужен, когда можно просто и тупо вызывать методы. - =AlexD=(11.06.2013 19:15)
- Так тут речь не о нужности property (вообще, это весьма спорные образования), а о сокрытии данных внутри объекта. Конечно, вызовом методов можно обойтись. - Лeoнид Ивaнoвич(11.06.2013 22:24)
- Вот. Нужно рассматривать конкретный GUI. - _basile(11.06.2013 22:43)
- Так тут речь не о нужности property (вообще, это весьма спорные образования), а о сокрытии данных внутри объекта. Конечно, вызовом методов можно обойтись. - Лeoнид Ивaнoвич(11.06.2013 22:24)
- В принципе всё тоже самое можно сделать и на чистом C++ без всяких расширений, даже какой-нибудь шаблон написать, но по факту весь этот геморрой никому не нужен, когда можно просто и тупо вызывать методы. - =AlexD=(11.06.2013 19:15)
- Это кусок исходника одной из библиотек Borland C++, они у него на Паскале. К вопросу о том, что можно делать внутри метода SetColor. - Лeoнид Ивaнoвич(11.06.2013 18:20)
- Ой, это вообще-то Паскаль, похоже. С С++ на МК как связать ? - _basile(11.06.2013 18:15)
- Так это я для примера сказал, что можно диапазоны проверить. Вообще много чего делать можно. У TButton свойства Color нет, но вот, например, SetColor() для ScrollBar из VCL: Лeoнид Ивaнoвич(239 знак., 11.06.2013 18:10)
- Вот так бы сразу и сказал, что свойства объекта - расширение С++ и к стандарту никакого отношения не имеют. _basile(374 знак., 11.06.2013 17:49 - 17:55)
- А в багланде нельзя operator= перегрузить? - fk0(10.06.2013 17:19)
- в борланде есть расширение для С++ эмулирующее дельфийные проперти, стандарту С++ не соответствует никак. - =AlexD=(11.06.2013 17:01)
- Да уж, C++ с паскалем не сравнить, тонны говнокода на пустом месте. В тикле такая же байда (configure, cget). fk0(440 знак., 11.06.2013 20:22)
- Ну, хватит уже. Тут базар о С++ . О Паскале - заведи другую ветку. _basile(231 знак., 11.06.2013 22:08 - 22:17)
- Правильно - делом. Следовательно, дельфЯ... Быстро и изящно... - Гудвин(11.06.2013 22:19)
- Дельфя на МК - сомнительно. Быстро - может быть... Изящно ? Я тя умоляю. - _basile(11.06.2013 23:11)
- Правильно - делом. Следовательно, дельфЯ... Быстро и изящно... - Гудвин(11.06.2013 22:19)
- Ну, хватит уже. Тут базар о С++ . О Паскале - заведи другую ветку. _basile(231 знак., 11.06.2013 22:08 - 22:17)
- Да уж, C++ с паскалем не сравнить, тонны говнокода на пустом месте. В тикле такая же байда (configure, cget). fk0(440 знак., 11.06.2013 20:22)
- в борланде есть расширение для С++ эмулирующее дельфийные проперти, стандарту С++ не соответствует никак. - =AlexD=(11.06.2013 17:01)
- А так,вообще-то базар об МК. - _basile(10.06.2013 16:26)
- Ну не усугубляй, а то совсем дурачком выглядишь. Borland Builder это С++ подобная надстройка над дельфями, и стандарту соответствует постольку-поскольку, например весь boost им не собрать. Ну и проперти в нём реализованы в виде расширения =AlexD=(129 знак., 11.06.2013 16:49)
- Я на дельфийные и не залупался (разуй глаза) чисто по BORLAND C++. _basile(35 знак., 10.06.2013 16:21)
- Cвойства объекта (property) как раз и придуманы для того, чтобы скрыть поля объекта, а обращаться к ним только через методы, которые назначены на запись и на чтение property. - Лeoнид Ивaнoвич(09.06.2013 16:41)
- И все же. Для чего разработчики некоторые свойства объекта сделали public ? _basile(273 знак., 11.06.2013 16:30)
- Свойства - это не переменные, это специально придуманные конструкции для неявного вызова функций. Лeoнид Ивaнoвич(118 знак., 11.06.2013 17:14)
- Ну как-же ты упрям в своём невежестве. Гугли property , если по ссылке непонятно. - =AlexD=(11.06.2013 16:54, ссылка)
- Признаю свою ошибку. Спутал свойства объекта и данные класса. _basile(404 знак., 11.06.2013 17:35 - 17:40)
- И все же. Для чего разработчики некоторые свойства объекта сделали public ? _basile(273 знак., 11.06.2013 16:30)
- Таварищчь, если вы не в курсе, как работают дельфийные проперти, то не следует надувать щёки - глупо выглядит. - =AlexD=(09.06.2013 22:26)
- Глупости не пишите. Изменение цвета кнопки - конечный результат наступления неких событий. На остальное должен влиять обработчик события, а не индикатор (цвет кнопки). _basile(190 знак., 09.06.2013 14:20 - 14:24)
- Ога, а потом окажется, что изменение этого атрибута должно влиять на значение других атрибутов, и приплыли, всю программу перелопачивать. Фтопку. - =AlexD=(09.06.2013 13:04)
- зачем ? почему нельзя напрямую ? - zeleny(08.06.2013 22:55)
- В функциях можно сделать много хорошего, проверить диапазоны, выполнить действия, нужные при обновлении переменных. Ну а какая красота кода без глобальных переменных - просто неописуемая. Раз в полчаса отхожу от монитора и издали любуюсь. - Лeoнид Ивaнoвич(08.06.2013 22:59)
- А что мешает не использовать глобальные переменные в C? - Vladimir Ljaschko(08.06.2013 23:26)
- Ничего не мешает, так и делаю. Но на C++ программа будет красивее. - Лeoнид Ивaнoвич(11.06.2013 18:26)
- А что мешает не использовать глобальные переменные в C? - Vladimir Ljaschko(08.06.2013 23:26)
- В функциях можно сделать много хорошего, проверить диапазоны, выполнить действия, нужные при обновлении переменных. Ну а какая красота кода без глобальных переменных - просто неописуемая. Раз в полчаса отхожу от монитора и издали любуюсь. - Лeoнид Ивaнoвич(08.06.2013 22:59)
- У меня не разрастается. Выбросьте свой компилятор. - SciFi(08.06.2013 22:49)
- Да, желательно. Я и теперь на Си ко всем переменным из других модулей обращаюсь только через интерфейсные функции модуля. - Лeoнид Ивaнoвич(08.06.2013 22:49)
- Ага, и обращаться к ним только через функции (методы). Неоправданное разрастание кода и тормоза. - _basile(08.06.2013 22:45)
- зачем ? Хватает локальных - zeleny(08.06.2013 22:24)
- Так фактически класс это и есть структура, только в ней еще функции могут содержаться. А так да, только ради этого и тянуть. А какие минусы? - Лeoнид Ивaнoвич(08.06.2013 22:27)
- Да преимущество в любой программе - инкапсуляция данных называется. При объявлении класса сразу можно задать области видимости для методов и полей. А обращение к члену класса содержит имя объекта, что улучшает читабельность исходников. На простом Лeoнид Ивaнoвич(106 знак., 08.06.2013 22:12)
- пример преимущества С++ можно ? - zeleny(08.06.2013 21:50)