Чем отличается C от C++
easy

Чем отличается C от C++

На 99% — ничем, но в C++ есть родная поддержка ООП.

Короткий ответ: C++ — это улучшенный C. У этих языков одинаковый на 99% синтаксис и команды, но C — это больше про структурное и процедурное программирование, а C++ — про объектно ориентированное.

C — язык, который сделал в 1973 году Деннис Ритчи. Главная цель языка — скорость, быстродействие и универсальность. Язык изначально проектировался как системный, чтобы на нём можно было писать код для процессоров, драйверов и создавать на нём операционные системы. В то время большинство этих вещей делали на ассемблере, и Ритчи хотел это упростить.

C++ придумал Бьёрн Страуструп в начале восьмидесятых, когда ему не хватало возможностей стандартного C. Он сделал язык более строгим, добавил в него классы, ООП-подход и перегрузку операторов, сохранив скорость оригинального С. В 1983 году Бьёрн переименовал язык из «C с классами» в C++.

👉 О перегрузке операторов как-нибудь в другой раз :-)

CC++

Код читается проще 

Код выглядит сложнее 

Проще портировать код на другие платформы 

Из-за особенностей языка код портировать сложнее 

Есть структуры и переменные типа «структура» 

Есть классы и объекты 

Наследование — это структура внутри структуры 

Классическое наследование в стиле ООП 

void — обязательное слово 

Использовать слово void не обязательно 

Можно объявлять глобальную переменную несколько раз 

Глобальная переменная объявляется только один раз 

Исключения нужно конструировать самому 

Есть обработка исключений 

Нет перегрузки операторов 

Операторы можно перегружать 

Почти всё стандартно и предсказуемо 

Легко написать код, в котором непонятно, где ошибка 

Для чего изучать

C — классический язык разработки системного ПО и любого софта для микропроцессоров. На нём написаны Linux, большая часть Windows и MacOS. Если взять любой современный носимый гаджет или электронное устройство, в большинстве случаев они работают тоже под управлением программы на C. В мире огромное количество кода, который написан на C (и ещё столько же будет написано), поэтому проблем с работой у C-программистов не предвидится.

C++ — выбор тех, кому одновременно нужна вся мощь C и гибкость объектно ориентированного программирования. Counter-Strike, StarCraft и World of Warcraft написаны на C++, а это значит, что можно сочетать производительность C и современные технологии. Часть движка Unity тоже написана на C++, чтобы получить прямой доступ к памяти и ресурсам системы.

На самом деле нет такой уж большой разницы между C и C++. Это одинаково мощные и быстрые языки, просто у них разная область применения и стиль программирования.

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

Сторонникам ООП больше подойдёт C++ — в нём уже есть всё, что нужно для работы с объектами, областями видимости и прочим добром. Иногда такой код сложнее поддерживать и он может работать на несколько процентов медленнее, чем на C, но в нём есть та свобода, которой нет в оригинальном языке. Та же перегрузка операторов — удивительно мощная вещь в умелых руках, которая может сэкономить много времени и ресурсов.

Чтобы было понятнее, скоро напишем подробно про оба языка. А вы не болейте и берегите себя.

Обложка:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Маша Климентьева

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Вам может быть интересно
Для чего нужен язык C#
Для чего нужен язык C#

Как в Микрософте сделали свой язык программирования. И зачем.

easy
Задача имени Якубовича: три шкатулки с деньгами
Задача имени Якубовича: три шкатулки с деньгами

Интуиция обманет вас в этой задаче. Попробуйте лучше теорию вероятностей, это легко.

hard
Домашний кинотеатр на Raspberry Pi
Домашний кинотеатр на Raspberry Pi

Превращаем любой телевизор в умный гаджет.

easy
Что такое обфускация кода
Что такое обфускация кода

Когда код специально запутывают так, чтобы было непонятно, как он работает

easy
Как прокачать буфер обмена
Как прокачать буфер обмена

И что это вообще такое

easy
Одностраничник, лендинг, сайт и портал — в чём разница
Одностраничник, лендинг, сайт и портал — в чём разница

Разница — в структуре

easy
В чём разница между ждущим и спящим режимом
В чём разница между ждущим и спящим режимом

Вся разница — в режиме энергосбережения

easy
Дизайнер в ИТ: зачем он нужен и как им стать
Дизайнер в ИТ: зачем он нужен и как им стать

Нестыдные вопросы, в том числе — нужно ли уметь рисовать.

easy
База по вёрстке: самые основы CSS
База по вёрстке: самые основы CSS

Учимся наводить красоту в веб

easy
easy