Перейти к содержанию
    

Как ПРАВИЛЬНО программировать на С++

программисты на Си обсуждают и решают проблемы конкретных контроллеров, конкретного железа. це-крест-крест добавляет к этим проблемам ещё и проблемы собственно языка. начинаются обсуждения проблем что и как откуда наследуется инкапсулируется и полиморфируется. за деревьями не видно леса.

ну почему я не удивлён.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

программисты на Си обсуждают и решают проблемы конкретных контроллеров, конкретного железа. це-крест-крест добавляет к этим проблемам ещё и проблемы собственно языка.

Всё зависит от сложности и размера проекта.

С определённого момента дополнительные возможности, которые даёт язык, перекрывают его "проблемы".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если вы посмотрите на sizeof(A) и наследуемые классы, то увидите, что int Х в них нет. А если уберете static, то размер классов увеличится.

 

Вот об этом и разговор.

Естественно X там нет, он лежит отдельно от всего в единственном экземпляре. Но я не понимаю вот этого:

В случае создания объектов от разных классов, объект SPI будет продублирован.

Это как так может быть? С чего создастся два разных Х?

 

це-крест-крест добавляет к этим проблемам ещё и проблемы собственно языка.

Конечно. И ровно то же самое говорят упертые ассемблерщики в сторону цешников (и справедливо, если на все смотреть плоско!). Смотрите на мир шире, не зря эти языки были придуманы, не зря существуют методы проектирования ПО. Естественно, что для простого SPI не нужно городить классы, но когда у вас будет огромный проект, вы встряните и будете долго понимать, как же так получилось непонятно.

 

Думается мне, что это не "проблемы языка", а банально проблемы от незнания языка. Это не характеризует язык.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я и смотрю широко. война с конструкциями языка (и только с конструкциями языка) - удел програмеров це++

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я и смотрю широко. война с конструкциями языка (и только с конструкциями языка) - удел програмеров це++

 

В 1981 году мы делали статистический анализатор кардиоинтервалов на К580ИК80. У меня (единственного программиста) не было абсолютно ничего кроме блокнотика с клетчатой бумагой, таблицы мнемоники команд и программатора УФ ПЗУ. Все это было сделано, работало и получило награду на выставке в Женеве. Но ...!!! После этого я зарекся заниматься таким программированием. Мне ночами снились квадратики с кодами. Думается это одна из причин появления языков высокого уровня. Вторая причина - переносимость. Третъя - документированность (имею в виду, что если с вами что-то случается, то вашу работу легче кому-то подхватить).

 

А причин бесконечных ратований за ассемблер, на мой взгляд, две:

1. Понятность ассемблера для "железячника".

2. Лень изучения языков высокого уровня применительно к конкретному процессору.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

программисты на Си обсуждают и решают проблемы конкретных контроллеров, конкретного железа. це-крест-крест добавляет к этим проблемам ещё и проблемы собственно языка. начинаются обсуждения проблем что и как откуда наследуется инкапсулируется и полиморфируется. за деревьями не видно леса.

ну почему я не удивлён.

 

Или я чего-то не так понял?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и где я упоминал ассемблер???

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы, видимо мало на С++ программировали...

 

На С++ можно писать более эффективные программы (по размеру/памяти/скорости) чем на чистом Си (применительно к 8-ми битникам в частности). И Наследование, инкапсуляция и полиморфизм (как динамический так и (особенно) статический) в этом только помошники а не проблемы. Это всего лишь средства языка, которые быдучи примененными к месту дают положительный результат. Ну а при неумелом использовании... Всё зависит от программиста.

Изменено пользователем neiver

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и где я упоминал ассемблер???

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

 

Да, витиевато пишите. Сейчас только ваша мысль прояснилась.

 

По поводу С++. Очень хорошо на форуме сказал автор scmRTOS: С++ ничего не добавляет, если вы сами этого не просите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

программеры на Си воюют только с железом и со своими алгоритмами.

Это тоже ошибочное мнение:) Программеры на си, которые воюют, они воюют и с си! Потому что не знают языка! А те, кто знает, те не воюют, точно так же как и с си++.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

во налетели. :)

ещё раз. чисто наблюдения показывают, что вопросы касаемые конструкций и возможностей языка у программистов Си практически не обсуждаются. зато активно муссируются у плюсистов. выводы какие?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

во налетели. :)

ещё раз. чисто наблюдения показывают, что вопросы касаемые конструкций и возможностей языка у программистов Си практически не обсуждаются. зато активно муссируются у плюсистов. выводы какие?

 

Учите матчасть!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

во налетели. :)

ещё раз. чисто наблюдения показывают, что вопросы касаемые конструкций и возможностей языка у программистов Си практически не обсуждаются.

А что там особо обсуждать, разве что правила глянуть в спорных ситуациях.

Фактически, макронадстройка над ассемблером, с нелинейным преобразованием.

Нет возможностей - нет вопросов.

Хотя нет, был недавно вопрос - ARV со своими менюшками колдовал.

Никак эта дикая смесь структур и юнионов не хотела в флешь ложиться...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это как так может быть? С чего создастся два разных Х?

Прошу прощения :)

Почему-то показалось, что вы хотите не наследоваться от базового класса, а создавать статические члены в "потребителях" SPI :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...