Всем привет! С вами Сам Самыч!
Сегодня вы узнаете:
1. Что такое C++?
2. История C++
3. Программирование на C++
4. Какие компиляторы данного языка существуют?
5. Сравнение C и C++
6. Почему изучение C++ для новичка - ад?
7. Почему несмотря на сложность, C++ до сих пор впихивают в движки, игры и куда только можно?
8. Почему C++ - это нет просто C с парой фишек?
9. Почему C++ никогда не будут использовать в разработке ядра Linux?
"Глава 1 - Что такое C++?"
C++ - это язык программирования, который был основан на C (это моя прошлая статья, советую её прочитать), и задумывался как "C с классами", но давайте по порядку:
Как это было: C++ был создан в 1983 году Бьярном Страуструпом (какое у него сложное имя та, ёкарный бабай) в нашей любимой лаборатории Bell Labs, и Бьярн (теперь я так его буду называть) решил не "создать новый язык", а просто расширить уже и так успешный C.
В чём суть: Бьярн добавил в C++ элементы ООП (Объектно Ориентированного Программирования), и оставил полную совместимость с C. То есть, установив компилятор C++ вы могли на нём спокойно скомпилировать программу созданную на C.
Итог: Бьярн разработал C++ в 1983 году, и вместо создания нового языка просто хотел сделать расширение C, но его судьба расположилась по другому - более хорошему пути для этого языка.
Кстати, данный язык стал называться C++ примерно в 1985 году.
По традиции стоит сказать и про компиляторы C++ (популярные и те, которые я знаю):
1. GCC / g++ - для Linux, macOS (стандарт)
2. MSVC - Windows (Visual Studio)
"Глава 2 - Почему C++ - это не просто C с парой фишек?"
C++ планировался как надстройка над C. По сути, эта идея до сих пор осталась, но... Оно вышло за рамки этой идеи. Этот язык начал стремительно развиваться, и уже в 1998 году стал независимым языком программирования и приобрёл стандарты.
C++ имеет при себе не пару нововведений. Он имеет много, очень много нововведений, которые украшают язык. Например, те же самые шаблоны, или можно взять умные указатели, или переменные auto, или классы. Их очень много.
"Глава 3 - Программирование на C++"
Программирование на C++, как и на C - кроссплатформенная, но с исключениями.
Шаг 1: Нужно установить компилятор
Как установить для Linux:
1. Нужно ввести команду "sudo [ваш пакетный менеджер] install g++". У меня (Ubuntu/Debian) это: "sudo apt install g++".
2. Подождать.
3. Переходим к шагу 2.
Как установить для Windows (Сразу скажу: я буду говорить про Dev-C++, но сейчас используют Visual Studio):
1. Проверить наличие программы Dev-C++. Если она у вас есть, то переходите к шагу 2. Если нет, то...
2. Заходим на сайт "www.dev-cpp.com", после нажимаем на ссылку со stable версией, после скачиваем установочный файл и запускаем его.
3. Устанавливаем программу и ждём.
4. Переходим к шагу 2.
Шаг 2: Новый проект
Для Linux:
1. Введите команду "nano main.cpp".
2. Нужно вставить код из шага "2.5".
3. Сохраняем проект (CTRL + S) и закрываем программу (CTRL + X).
Для Windows:
1. Создаём новый проект и указываем C++.
2. Копируем код из шага "2.5".
3. Сохраняем проект (CTRL + S), выходить НЕ надо.
Шаг 2.5: Код.
Вот код, который надо вставить:
```C++
#include <iostream> // Импортируем библиотеку для ввода/вывода
// Я, кстати, сначала чуть не ввёл <stdio.h> из прошлой статьи, советую её прочитать
int main() { // Основная функция
std::cout << "Hello, world!\n"; // Вывод фразы "Hello, world!"
return 0; // Завершение программы
}
```
Шаг 3: Компиляция и запуск
Для Linux:
1. Нужно ввести команду: "g++ main.cpp -o main".
2. После ввести "./main".
Для Windows:
1. Нужно скомпилировать программу клавишей F7 или F11.
Шаг 4: Итог
На экране у вас должна быть надпись "Hello, world!" на экране. Если её нет, или у вас вышла ошибка при компиляции, то это либо Дзен просто затупил, либо же компилятор тупит.
"Глава 4 - Почему программирование на C++ для новичков - ад, но и рай одновременно?"
Возможностей C++ настолько много, что их изучать кошмар, если вы не знаете C. Тут не пару отличий в сравнение с C, тут их десятки, сотни. Именно по этому выходной файл при коде на C++ намного больше, чем на C, а так же код на C++ компилируется в разы больше, чем на C.
Но при этом есть один вопрос: "Почему на C++ пишут игры, движки, дополняют операционные системы?"
А потому, что в играх и движках C++ даёт классы - незаменимую вещь для таких проектов. Для операционных систем классы, хеш таблицы, шаблоны и другие фишки тоже нужны.
По этому C++ — швейцарский нож: можно и суп поесть, и гайку закрутить.
Кстати, случайный факт: Знаете игру Wolfenstein (примерно так) и DOOM? Я сейчас говорю не про современные игры, а ещё про бородатые 80-ые и 90-ые. Так вот, так как C++ тогда был ещё не таким популярным и имел при себе много дыр, Джон Кармак (создатель DOOM и Wolfenstein) сделал на основе C свою версию классов и наследования для упрощения программирования.
Так же, много программистов презирают C++. Даже Линус Торвальтс, сказал: "Я против того, что бы C++ был в основном ядре". Даже я программирую сейчас только на C и немного на Assembler (как учебный язык). Я очень давно не программировал на C++, хотя у меня есть с C++ много историй, но это в темах, которые сейчас называют "сторитаймы" - темы, в которых автор рассказывает истории.
"Глава 5 - Что в итоге?"
Вы узнали за эту статью:
1. Что такое C++ и его история;
2. Программирование на C++;
3. Компиляторы C++;
4. Сравнение C и C++;
5. Изучение C++ для новичка - ад;
6. Почему несмотря на сложность, C++ до сих пор впихивают в движки, игры и куда только можно;
7. C++ - это нет просто C с парой фишек;
8. Почему C++ никогда не будут использовать в разработке ядра Linux.
Пишите в комментариях: Как вы относитесь к C++? Хотели бы вы выучить данный язык? Хотели бы вы одну из моих историй с ним? Спорим, вы не знали такого объёма информации?
С вами был Сам Самыч, всем пока!