С любой темой всегда связано определенное количество заблуждений. Очистка от них становится очень важной, когда кто-то изучает или изучает тему. В этой статье мы поговорим о некоторых из величайших мифов, связанных с C ++ с момента его зарождения. Некоторые из них принадлежат Бьярну Страуструпу, человеку, стоявшему за созданием и развитием C ++.

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

Изучение C является обязательным условием.

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

Явная обработка символов и явный контроль памяти требуются в версии C.

Но C - не самый простой или удобный подмножество C ++ для изучения в первую очередь. В дополнение к этому, подмножество C, безусловно, изучается, если вы понимаете небольшое количество C ++. Изучение C до C ++ предполагает работу с ошибками и недостатками, которых можно легко избежать.

C ++ - объектно-ориентированный язык

Нет. C ++ поддерживает ООП и другие методы программирования, но не связан с какими-либо такими «объектно-ориентированными» ограничениями. Программирование универсально. Он включает поддержку объективного и общего программирования.

Миф «C ++ - это OOPL» предполагает, что C ++ не нужен, если вам не нужны крупномасштабные иерархии с множеством виртуальных функций - а это не подходит для многих ситуаций.

Вера в этот миф побуждает людей критиковать C ++ только за то, что он не является объектно-ориентированным, хотя очевидно, что в C ++ есть много «не объектно-ориентированного». Однако, если вы думаете, что «хорошее» «объектно-ориентировано», и все остальное следует считать «плохим». Это заблуждение предлагает честное оправдание отказа от изучения C ++ в любом случае.

Вам нужно использовать низкоуровневый код для эффективности

Многие считают, что эффективный код нужно создавать на низком уровне. Некоторые люди также думают, что код низкого уровня эффективен по сути. Разумеется, эффективный код может быть создан только с использованием низкоуровневых средств, и определенный код должен быть низкоуровневым, чтобы напрямую взаимодействовать с компьютерными ресурсами.

Тем не менее, проверьте, окупились ли ваши усилия: новые компиляторы C ++ невероятно успешны, а архитектура современных машин чрезвычайно сложна. Когда требуется такой низкоуровневый код, обычно удобнее использовать его через пользовательский интерфейс.

Давайте посмотрим на sort и qsort для примера. Qsort - это разновидность эквивалента нижнего уровня. Поскольку реализации библиотеки, похоже, используют один и тот же алгоритм как для сортировки, так и для qsort, это не алгоритмы, а сравнение подходов к программированию. Конечно, разные компиляторы и библиотеки дают разные результаты, но влияние разной степени абстракции на каждую реализацию представлено справедливо.

Код низкого уровня обычно уступает коду высокого уровня. Естественно, это не всегда, но сравнение sort & qsort - не единичный пример. Всегда начинайте с более высокой, точной и безопасной версии решения.

В C ++ более 35 операторов

Оператор - это символ, который инструктирует компилятор выполнять определенные математические или логические операции. В C ++ есть множество встроенных операторов, в том числе следующие:

Арифметические операторы - здесь операторы +, - и * вычисляют сложение, вычитание и умножение соответственно, как мы могли ожидать.

++ увеличивает значение операнда на 1.

- уменьшает на 1.

Операторы отношения - используются для проверки связи между двумя операндами.

Логические операторы - используются для проверки того, является ли выражение истинным или ложным. Если выражение истинно, оно возвращает 1, тогда как если выражение ложно, оно возвращает 0.

Побитовые операторы - используются для выполнения операций с отдельными битами. Их можно использовать только вместе с типами данных char и int.

Операторы присваивания - используются для присвоения значений переменным.

Здесь у нас есть несколько примеров арифметических операций, предполагающих, что A = 10 и B = 20:

C ++ не кроссплатформенный

C ++ - полностью кроссплатформенный язык. Обоснование, которое утверждают многие люди, заключается в том, что C ++ не имеет стандартизированной встроенной библиотеки, которая обеспечивает одинаковую реализацию в каждой ОС для таких вещей, как файловая система, доступ к сети и т. Д., Как это делают языки вроде Java.

Невозможно реализовать все функции / версии / библиотеки на всех компиляторах или на всех платформах, поэтому нет, C ++ не является кроссплатформенным языком.

C ++ - это многоплатформенный язык, в котором, как правило, можно успешно компилировать исходный код для множества различных систем. Как правило, создаваемые вами двоичные файлы не могут передаваться между системами.

Вы должны убедиться, что не создаете специфичный для платформы или компилятора код при нацеливании на несколько систем. Для поддержки всех соответствующих целей необходимо также указать каждую используемую вами стороннюю библиотеку.

C ++ - умирающий язык

C ++ растет. В то время как компьютеры становятся быстрее, наши требования к тому, что мы хотели бы делать с ними, постоянно растут. C ++ - один из немногих языков, которые позволяют нам максимально использовать потенциал нашего оборудования.

Вы должны программировать объектно-ориентированные программы на C ++.

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

Функция - это самое основное требование для программы на C ++

Пока в программе есть функция, она будет работать успешно. Необязательно, чтобы каждая программа на C ++ имела объекты и классы.

Заключение

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

Использованная литература:

  1. Https://isocpp.org/2014/12/myths-1
  2. Https://www.modernescpp.com/index.php/myths
  3. Https://visualstudiomagazine.com/articles/2016/05/26/cpp-myths-read-andrey-karpov.aspx?admgarea=ALM
  4. Https://pvs-studio.com/ru/b/0733/
  5. Https://www.bfilipek.com/2019/09/cpplinks35.html
  6. Https://hackernoon.com/common-misconceptions-of-c-4f49f36b92a
  7. Https://codegolf.stackexchange.com/questions/44278/debunking-stroustrups-debunking-of-the-myth-c-is-for-large-complicated-pro