Различия языка С++ от Си.

Прежде чем начать изучать язык программирования С++ вы должны понимать что это отдельный язык. Хоть он и “сын” языка Си и многим на него похож, но также у них есть много различий. Си, ориентирован на системное программирование. С++, универсальный язык, на 99% совместим с Си. Сегодня я расскажу о всех различиях С++ от Си.

Язык программирования С++ задумывался как язык, который будет:

  • лучше языка С;
  • поддерживать абстракцию данных;
  • поддерживать объектно-ориентированное программирование.

Все различия языков:

1. В C++ появились классы и объекты. Технически класс C++ – это тип структуры в C, а объект – переменная такого типа. Разница только в том, что в C++ есть еще модификаторы доступа и полями могут быть не только данные, но и функции.

2. То, что в C++ – наследование, в C – это просто структура в структуре. При программировании в стиле C++ применяются такие красивые и звучные слова, как “класс Circle порожден от класса Point” или “класс Point наследуется от класса Circle и является производным от него”. При этом реальных усовершенствований два. Первое – поля Point считаются так же и полями Circle, в результате доступ к ним записывается короче, чем в C. Второе – в обоих структурах можно иметь функции-методы, у которых имена совпадают с точностью до имени структуры.

3. В C++ появились две новые операции: new и delete. При вызове new автоматически вызывается конструктор, а при вызове delete – деструктор. Нововведение можно описать формулой: new = malloc + конструктор, delete = free + деструктор.

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

5. Разработчики C++ ввели слово var. А чтобы все это выглядел оригинально, “var” они переименовали в “&” и назвали “ссылкой”. Это вызвало большую путаницу, так как в C уже были понятия “указатель” и “адрес” (обозначался тем же символом &), а понятие “ссылка” звучит тоже как что-то указующе-адресующее.

6. Желание программистов C контролировать типы параметров в define-ах породило в C++ inline-функции. Такая функция – это обычный define с параметрами, только не надо мучиться с символами “\” и проверяются типы. Желание узаконить в параметрах define имя типа породило template. Главный плюс template – то, что #define с одинаковыми параметрами породит два одинаковых куска кода. А template в компиляторе скорее всего будет соптимизирован: одинаковые куски кода будут соединены в один.

7. Разные стандартные расширения файлов. file.c – означает файл написан на языке С, а file.cpp – означает что файл написан на языке С++.

8. В С++ ключевое слово void является факультативным. Многие программисты на С++ включают void в качестве средства, улучшающего читаемость программы и указывающего, что у функции нет параметров.

9. В С++ все функции должны иметь прототипы. В С это требование является факультативным.

10. В С символьная константа автоматически повышается до целого числа. В С++ это не так.

11. В С объявление глобальной переменной несколько раз не является ошибкой, хотя и не служит признаком хорошего программирования. В С++ это является ошибкой.

12. В С идентификатор имеет по крайней мере 31 значащий символ. В С++ все символы рассматриваются как значащие.

13. В С можно вызвать функцию main() из программы, хотя это и нетипично. В С++ это недопустимо.

14. В С нельзя взять адрес регистровой переменной. В С++ можно это сделать.

Я постарался написать все различия С++ от Си, но, если вы думаете, что я что-то пропустил можете написать в комментариях.

 
Поделиться в facebook
Facebook
Поделиться в twitter
Twitter
Поделиться в vk
VK
Поделиться в google
Google+
Поделиться в email
Email

Один ответ к “Различия языка С++ от Си.”

[…] Как и всегда в начале изучения нового языка без практики необойтись. В любом программировании первая программа это вывод приветствия. Этим мы сегодня и займемся. Мы выведим наше приветствие в консоль. Язык С++ похож на Си поэтому код будет немного похож на код Си, но запомните это разные языки. Я уже писал статью о различиях данных языков. Можете посмотреть их тут. […]

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Группа в VK

Помощь проекту

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

Похожие статьи

Локальные и глобальные переменные в С++.

Локальные и глобальные переменные в С++.

Каждая переменная имеет свою область видимости, то есть такую область, в которой можно работать с переменной. За пределами этой области, о данной переменной ничего известно

 
Математические функции в С++

Математические функции в С++

В языке С++ математические функции определены в заголовочном файле <cmath> функции выполняющие некоторые часто используемые математические задачи. Например, нахождение корня, возведение в степень, sin(), cos()

 
Работа с файлами в С++.

Работа с файлами в С++.

Файл – именованный набор байтов, который может быть сохранен на некотором накопителе. Файл имеет уникальное имя, например файл.txt. Для работы с файлами в С++ необходимо

 
Структуры в C++.

Структуры в C++.

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

 

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: