0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>Описание языка</a><ul><li><a>Преимущества и недостатки</a></li>
1
<ul><li><a>Описание языка</a><ul><li><a>Преимущества и недостатки</a></li>
2
</ul></li>
2
</ul></li>
3
<li><a>Термины и определения</a></li>
3
<li><a>Термины и определения</a></li>
4
<li><a>Краткий обзор языка</a></li>
4
<li><a>Краткий обзор языка</a></li>
5
<li><a>Начало работы - как создать программу</a><ul><li><a>Создание проекта</a></li>
5
<li><a>Начало работы - как создать программу</a><ul><li><a>Создание проекта</a></li>
6
<li><a>Исходный код и его работа</a></li>
6
<li><a>Исходный код и его работа</a></li>
7
</ul></li>
7
</ul></li>
8
</ul><p>Программирование - процедура создания программного обеспечения при помощи синтаксиса того или иного языка. На данный момент в IT используются различные ЯП. Наиболее востребованным (и сложным) является C++.</p>
8
</ul><p>Программирование - процедура создания программного обеспечения при помощи синтаксиса того или иного языка. На данный момент в IT используются различные ЯП. Наиболее востребованным (и сложным) является C++.</p>
9
<p>Если покопаться в источниках Google, то можно узнать, что программы, созданные при помощи<a>C++</a>, широко используются как в ПК, так и на мобильных устройствах. Этот язык разработки программного обеспечения в большей степени ориентирован на опытных программистов. Новичкам освоить его с нуля будет достаточно тяжело. В Google полно информации, которая поможет быстрее разобраться с принципами программирования на C++, не имея никакого опыта в написании контента ранее.</p>
9
<p>Если покопаться в источниках Google, то можно узнать, что программы, созданные при помощи<a>C++</a>, широко используются как в ПК, так и на мобильных устройствах. Этот язык разработки программного обеспечения в большей степени ориентирован на опытных программистов. Новичкам освоить его с нуля будет достаточно тяжело. В Google полно информации, которая поможет быстрее разобраться с принципами программирования на C++, не имея никакого опыта в написании контента ранее.</p>
10
<p>Отличительной чертой упомянутого ЯП является использование концепций и принципов объектно-ориентированной разработки. Google говорит, что в соответствующей методологии используются такие особенности как:</p>
10
<p>Отличительной чертой упомянутого ЯП является использование концепций и принципов объектно-ориентированной разработки. Google говорит, что в соответствующей методологии используются такие особенности как:</p>
11
<ul><li>абстракция;</li>
11
<ul><li>абстракция;</li>
12
<li>инкапсуляция;</li>
12
<li>инкапсуляция;</li>
13
<li>полиморфизм;</li>
13
<li>полиморфизм;</li>
14
<li>наследование.</li>
14
<li>наследование.</li>
15
</ul><p>Далее предстоит выяснить, как написать первую программу на C++ без использования многочисленной документации и уроков, которые можно обнаружить в Google. Предложенные сведения ориентированы преимущественно на новых разработчиков, которые ранее не имели ничего общего с изучаемым ЯП.</p>
15
</ul><p>Далее предстоит выяснить, как написать первую программу на C++ без использования многочисленной документации и уроков, которые можно обнаружить в Google. Предложенные сведения ориентированы преимущественно на новых разработчиков, которые ранее не имели ничего общего с изучаемым ЯП.</p>
16
<h2>Описание языка</h2>
16
<h2>Описание языка</h2>
17
<p>Прежде чем начать работать с C++ и писать программы без Google, необходимо выяснить, с каким языком разработки предстоит иметь дело. Это компилируемый и статически типизированный язык программирования. Он относится к ЯП общего назначения.</p>
17
<p>Прежде чем начать работать с C++ и писать программы без Google, необходимо выяснить, с каким языком разработки предстоит иметь дело. Это компилируемый и статически типизированный язык программирования. Он относится к ЯП общего назначения.</p>
18
<p>Включает в себя следующие парадигмы разработки:</p>
18
<p>Включает в себя следующие парадигмы разработки:</p>
19
<ul><li>процедурная;</li>
19
<ul><li>процедурная;</li>
20
<li>объектно-ориентированная;</li>
20
<li>объектно-ориентированная;</li>
21
<li>обобщенная.</li>
21
<li>обобщенная.</li>
22
</ul><p>Обладает стандартной библиотекой, которая включает в свой состав распространенные алгоритмы, контейнеры, вводы-выводы, а также многопоточность, регулярные выражения и иные операции. Сочетает в себе свойства высокоуровневых и низкоуровневых ЯП.</p>
22
</ul><p>Обладает стандартной библиотекой, которая включает в свой состав распространенные алгоритмы, контейнеры, вводы-выводы, а также многопоточность, регулярные выражения и иные операции. Сочетает в себе свойства высокоуровневых и низкоуровневых ЯП.</p>
23
<p>Google указывает на то, что C++ широко используется современными программистами. Начать работать с ним "с нуля" не всегда легко. Это связано с особенностями синтаксиса и правил оформления исходного кода приложения. В плане областей применения рассматриваемый ЯП является универсальным средством. Google указывает на то, что он одинаково часто используется для драйверов, системных программ, а также при создании различных утилит, игр и даже кроссплатформенного программного обеспечения. Все зависит от задачи, поставленной перед разработчиком.</p>
23
<p>Google указывает на то, что C++ широко используется современными программистами. Начать работать с ним "с нуля" не всегда легко. Это связано с особенностями синтаксиса и правил оформления исходного кода приложения. В плане областей применения рассматриваемый ЯП является универсальным средством. Google указывает на то, что он одинаково часто используется для драйверов, системных программ, а также при создании различных утилит, игр и даже кроссплатформенного программного обеспечения. Все зависит от задачи, поставленной перед разработчиком.</p>
24
<h3>Преимущества и недостатки</h3>
24
<h3>Преимущества и недостатки</h3>
25
<p>В языке С плюс-плюс (C++) есть как плюсы, так и минусы. Google ссылается на следующие "сильные" стороны ЯП:</p>
25
<p>В языке С плюс-плюс (C++) есть как плюсы, так и минусы. Google ссылается на следующие "сильные" стороны ЯП:</p>
26
<ul><li>наличие объектно-ориентированного программирования;</li>
26
<ul><li>наличие объектно-ориентированного программирования;</li>
27
<li>быстродействие - программы работают достаточно быстро;</li>
27
<li>быстродействие - программы работают достаточно быстро;</li>
28
<li>возможность работы с данными на низком уровне, который является близким к аппаратному;</li>
28
<li>возможность работы с данными на низком уровне, который является близким к аппаратному;</li>
29
<li>множество библиотек и компиляторов;</li>
29
<li>множество библиотек и компиляторов;</li>
30
<li>популярность, благодаря которой C++ используют как новички, так и опытные программисты;</li>
30
<li>популярность, благодаря которой C++ используют как новички, так и опытные программисты;</li>
31
<li>синтаксис, напоминающий C#, Java и C;</li>
31
<li>синтаксис, напоминающий C#, Java и C;</li>
32
<li>совместимость с C-языком.</li>
32
<li>совместимость с C-языком.</li>
33
</ul><p>В Google также можно обнаружить ряд недостатков программ, написанных на C++:</p>
33
</ul><p>В Google также можно обнаружить ряд недостатков программ, написанных на C++:</p>
34
<ul><li>низкий уровень безопасности;</li>
34
<ul><li>низкий уровень безопасности;</li>
35
<li>строгая зависимость от платформы;</li>
35
<li>строгая зависимость от платформы;</li>
36
<li>сложный и строгий синтаксис;</li>
36
<li>сложный и строгий синтаксис;</li>
37
<li>общая сложность инструментов и функций.</li>
37
<li>общая сложность инструментов и функций.</li>
38
</ul><p>Google указывает на то, что у рассматриваемого языка отсутствует автоматическая сборка мусора, имеется стандартная библиотека, но она достаточно маленькая. Здесь также поддерживаются указатели, но их неправильное использование приводит к непредвиденным последствиям.</p>
38
</ul><p>Google указывает на то, что у рассматриваемого языка отсутствует автоматическая сборка мусора, имеется стандартная библиотека, но она достаточно маленькая. Здесь также поддерживаются указатели, но их неправильное использование приводит к непредвиденным последствиям.</p>
39
<p>Google подчеркивает - C++ является современным и удобным средством создания программ и игр. В умелых руках он позволит писать для нейросетей, консолей, операционных систем и драйверов.</p>
39
<p>Google подчеркивает - C++ является современным и удобным средством создания программ и игр. В умелых руках он позволит писать для нейросетей, консолей, операционных систем и драйверов.</p>
40
<h2>Термины и определения</h2>
40
<h2>Термины и определения</h2>
41
<p>Перед тем как начать написание первого приложения на рассматриваемом языке, программист должен запомнить несколько ключевых определений. Они пригодятся не только в C++, но и в других ЯП с поддержкой объектно-ориентированных концепций.</p>
41
<p>Перед тем как начать написание первого приложения на рассматриваемом языке, программист должен запомнить несколько ключевых определений. Они пригодятся не только в C++, но и в других ЯП с поддержкой объектно-ориентированных концепций.</p>
42
<p>Google указывает на то, что программистам предстоит запомнить такие понятия как:</p>
42
<p>Google указывает на то, что программистам предстоит запомнить такие понятия как:</p>
43
<ul><li>алгоритм - последовательность инструкций или действий, направленная на выполнение конкретной задачи;</li>
43
<ul><li>алгоритм - последовательность инструкций или действий, направленная на выполнение конкретной задачи;</li>
44
<li>аргумент - значение, передаваемое в функцию или команду программы;</li>
44
<li>аргумент - значение, передаваемое в функцию или команду программы;</li>
45
<li>символ - единица отображения информации, которая равна одной буквенной/символьной записи;</li>
45
<li>символ - единица отображения информации, которая равна одной буквенной/символьной записи;</li>
46
<li>объект - комбинация связанных переменных, констант и иных структур данных, способных совместно обрабатываться и выбираться;</li>
46
<li>объект - комбинация связанных переменных, констант и иных структур данных, способных совместно обрабатываться и выбираться;</li>
47
<li>класс - набор связанных объектов с общими свойствами;</li>
47
<li>класс - набор связанных объектов с общими свойствами;</li>
48
<li>константа - значение, которое все время остается неизменным;</li>
48
<li>константа - значение, которое все время остается неизменным;</li>
49
<li>тип данных - классификация данных определенного типа;</li>
49
<li>тип данных - классификация данных определенного типа;</li>
50
<li>массив - списки/группы схожих типов значений данных, которые были предварительно сгруппированы;</li>
50
<li>массив - списки/группы схожих типов значений данных, которые были предварительно сгруппированы;</li>
51
<li>петля (цикл) - последовательность инструкций, которые выполняются циклично до момента выполнения определенного условия или получения команды на остановку;</li>
51
<li>петля (цикл) - последовательность инструкций, которые выполняются циклично до момента выполнения определенного условия или получения команды на остановку;</li>
52
<li>итерация - один проход через заданный набор операций в программе;</li>
52
<li>итерация - один проход через заданный набор операций в программе;</li>
53
<li>ключевое слово - слово, зарезервированное системой для выполнения определенных операций/задач;</li>
53
<li>ключевое слово - слово, зарезервированное системой для выполнения определенных операций/задач;</li>
54
<li>операнд - объект, которыми можно манипулировать через операторы;</li>
54
<li>операнд - объект, которыми можно манипулировать через операторы;</li>
55
<li>оператор - объект, умеющий управлять операндами;</li>
55
<li>оператор - объект, умеющий управлять операндами;</li>
56
<li>переменная - именованная ячейка памяти, выделенная для хранения данных (информации) приложения;</li>
56
<li>переменная - именованная ячейка памяти, выделенная для хранения данных (информации) приложения;</li>
57
<li>указатель - переменная, содержащее имя и адрес расположения объекта;</li>
57
<li>указатель - переменная, содержащее имя и адрес расположения объекта;</li>
58
<li>синтаксис - набор правил передачи операторов.</li>
58
<li>синтаксис - набор правил передачи операторов.</li>
59
</ul><p>Google указывает на то, что первое приложение в C++ будет в обязательном порядке иметь переменные. С соответствующими компонентами сталкивается каждый разработчик. Они являются, согласно Google, основной частью любой программы.</p>
59
</ul><p>Google указывает на то, что первое приложение в C++ будет в обязательном порядке иметь переменные. С соответствующими компонентами сталкивается каждый разработчик. Они являются, согласно Google, основной частью любой программы.</p>
60
<h2>Краткий обзор языка</h2>
60
<h2>Краткий обзор языка</h2>
61
<p>В самом начале погружения в C++ рекомендуется кратко рассмотреть особенности используемого ЯП. Ключевым моментом в нем являются фигурные скобки. В них пишется "тело" кода - строки, которые будут обрабатываться компилятором программы и восприниматься согласно синтаксису. Если фигурных скобок нет, система не сможет распознать, что именно написал разработчик.</p>
61
<p>В самом начале погружения в C++ рекомендуется кратко рассмотреть особенности используемого ЯП. Ключевым моментом в нем являются фигурные скобки. В них пишется "тело" кода - строки, которые будут обрабатываться компилятором программы и восприниматься согласно синтаксису. Если фигурных скобок нет, система не сможет распознать, что именно написал разработчик.</p>
62
<p>Google указывает на то, что в C++ поддерживаются встроенные типы (они почти полностью повторяют типы данных C):</p>
62
<p>Google указывает на то, что в C++ поддерживаются встроенные типы (они почти полностью повторяют типы данных C):</p>
63
<ul><li>символьные: char, wchar_t;</li>
63
<ul><li>символьные: char, wchar_t;</li>
64
<li>целочисленные знаковые: signed char, short int, int. long int;</li>
64
<li>целочисленные знаковые: signed char, short int, int. long int;</li>
65
<li>целочисленные беззнаковые: unsigned char/short int/int/long int;</li>
65
<li>целочисленные беззнаковые: unsigned char/short int/int/long int;</li>
66
<li>с плавающей запятой (точкой): float, double, long double;</li>
66
<li>с плавающей запятой (точкой): float, double, long double;</li>
67
<li>логический: bool (принимает значение true или false).</li>
67
<li>логический: bool (принимает значение true или false).</li>
68
</ul><p>Язык поддерживает множественное наследование. Здесь, согласно Google, базовые классы (родители/предки) указываются в заголовке описания класса (включая спецификаторы доступа). От каждого класса наследование может быть публичным, закрытым или защищенным:</p>
68
</ul><p>Язык поддерживает множественное наследование. Здесь, согласно Google, базовые классы (родители/предки) указываются в заголовке описания класса (включая спецификаторы доступа). От каждого класса наследование может быть публичным, закрытым или защищенным:</p>
69
<p>По умолчанию базовый класс будет наследоваться как private.</p>
69
<p>По умолчанию базовый класс будет наследоваться как private.</p>
70
<p>Полиморфизм в языке может быть динамическим и параметрическим. Второй вариант представляется:</p>
70
<p>Полиморфизм в языке может быть динамическим и параметрическим. Второй вариант представляется:</p>
71
<ul><li>аргументами по умолчанию для функций;</li>
71
<ul><li>аргументами по умолчанию для функций;</li>
72
<li>перегрузкой функций;</li>
72
<li>перегрузкой функций;</li>
73
<li>механизмом шаблонов.</li>
73
<li>механизмом шаблонов.</li>
74
</ul><p>Инкапсуляция, как уверяет Google, производится через ввод уровня доступа к членам класса: открытый, защищенный, закрытый:</p>
74
</ul><p>Инкапсуляция, как уверяет Google, производится через ввод уровня доступа к членам класса: открытый, защищенный, закрытый:</p>
75
<p>Проверка доступа осуществляется непосредственно при компиляции кода в приложение.</p>
75
<p>Проверка доступа осуществляется непосредственно при компиляции кода в приложение.</p>
76
<h2>Начало работы - как создать программу</h2>
76
<h2>Начало работы - как создать программу</h2>
77
<p>Чтобы написать первый исходный файл "Hello world", который станет приложением на C++, необходимо произвести предварительную подготовку. А именно - установить Visual Studio. При медленном Интернете рекомендуется обратить внимание на Dev C++ 5 версии и новее. Эти среды необходимы для создания проектов на различных языках, включая C++.</p>
77
<p>Чтобы написать первый исходный файл "Hello world", который станет приложением на C++, необходимо произвести предварительную подготовку. А именно - установить Visual Studio. При медленном Интернете рекомендуется обратить внимание на Dev C++ 5 версии и новее. Эти среды необходимы для создания проектов на различных языках, включая C++.</p>
78
<p>Если разработчик имеет дело с Unix-подобными системами, ему предстоит подготовить две "утилиты" - компилятор GCC и любой текстовый редактор (пример - VIM). Больше ничего не потребуется. Этого программного обеспечения хватит для создания первой программы на C++.</p>
78
<p>Если разработчик имеет дело с Unix-подобными системами, ему предстоит подготовить две "утилиты" - компилятор GCC и любой текстовый редактор (пример - VIM). Больше ничего не потребуется. Этого программного обеспечения хватит для создания первой программы на C++.</p>
79
<h3>Создание проекта</h3>
79
<h3>Создание проекта</h3>
80
<p>Начиная создание проекта, пользователю предстоит в случае наличия у него Visual Studio:</p>
80
<p>Начиная создание проекта, пользователю предстоит в случае наличия у него Visual Studio:</p>
81
<ol><li>Зайти в VS. После - в раздел "Файл".</li>
81
<ol><li>Зайти в VS. После - в раздел "Файл".</li>
82
<li>Выбрать "Создать" - "Проект".</li>
82
<li>Выбрать "Создать" - "Проект".</li>
83
<li>Перейти в раздел "Общие" и выбрать "Пустой проект".</li>
83
<li>Перейти в раздел "Общие" и выбрать "Пустой проект".</li>
84
<li>Указать имя исходного файла. В нашем примере - lesson1.</li>
84
<li>Указать имя исходного файла. В нашем примере - lesson1.</li>
85
<li>Нажать на "Ок".</li>
85
<li>Нажать на "Ок".</li>
86
<li>Нажать правой кнопкой мыши по окну обозревателя решений, наведя курсор на папку "файлы исходного кода".</li>
86
<li>Нажать правой кнопкой мыши по окну обозревателя решений, наведя курсор на папку "файлы исходного кода".</li>
87
<li>В диалоговом окне выбрать пункт "Добавить" - "Создать элемент".</li>
87
<li>В диалоговом окне выбрать пункт "Добавить" - "Создать элемент".</li>
88
<li>Ввести название main.cpp.</li>
88
<li>Ввести название main.cpp.</li>
89
<li>Подтвердить операцию.</li>
89
<li>Подтвердить операцию.</li>
90
</ol><p>Теперь мы сделали предварительную подготовку для формирования исходного кода программы. В случае с GCC все проще - достаточно открыть текстовый редактор с подсветкой синтаксиса. Как только на экране появится рабочая область программы, можно начать ввод кода.</p>
90
</ol><p>Теперь мы сделали предварительную подготовку для формирования исходного кода программы. В случае с GCC все проще - достаточно открыть текстовый редактор с подсветкой синтаксиса. Как только на экране появится рабочая область программы, можно начать ввод кода.</p>
91
<h3>Исходный код и его работа</h3>
91
<h3>Исходный код и его работа</h3>
92
<p>Вот код, который должен быть набран в текстовом редакторе в конечном итоге на первый раз:</p>
92
<p>Вот код, который должен быть набран в текстовом редакторе в конечном итоге на первый раз:</p>
93
<p>Здесь директива #include используется для подключения различных файлов в код программы. #include <iostream> будет заменена при запуске проекта содержимым документа "iostream.h". Он используется стандартной библиотекой языка при выводе и вводе данных на экране.</p>
93
<p>Здесь директива #include используется для подключения различных файлов в код программы. #include <iostream> будет заменена при запуске проекта содержимым документа "iostream.h". Он используется стандартной библиотекой языка при выводе и вводе данных на экране.</p>
94
<p>#include <cstdlib> подключит стандартную библиотеку языка. Это необходимо для работы функции system.</p>
94
<p>#include <cstdlib> подключит стандартную библиотеку языка. Это необходимо для работы функции system.</p>
95
<p>Третья строка указывает на то, что по умолчанию используется именное пространство std. Все, что написано внутри фигурных скобок функции int main (может встречаться как void main) - это основное тело программы. Код, написанный внутри, автоматически выполнится при запуске программы.</p>
95
<p>Третья строка указывает на то, что по умолчанию используется именное пространство std. Все, что написано внутри фигурных скобок функции int main (может встречаться как void main) - это основное тело программы. Код, написанный внутри, автоматически выполнится при запуске программы.</p>
96
<p>Строка count… - это оператор, используемый для вывода текста на экран. Он позволяет не задавать то или иное значение переменной. В соответствующем блоке приведенного примера указывает, что на вывод в консоль отправляется запись "Hello, World!". Оператор endl переводит строку на уровень ниже.</p>
96
<p>Строка count… - это оператор, используемый для вывода текста на экран. Он позволяет не задавать то или иное значение переменной. В соответствующем блоке приведенного примера указывает, что на вывод в консоль отправляется запись "Hello, World!". Оператор endl переводит строку на уровень ниже.</p>
97
<p>Return 0 - команда, которая необходима для передачи информации системе об успешном завершении программы. Если происходит ошибка, возвращается значение, отличное от нуля.</p>
97
<p>Return 0 - команда, которая необходима для передачи информации системе об успешном завершении программы. Если происходит ошибка, возвращается значение, отличное от нуля.</p>
98
<p>В конце каждой команды, согласно Google и синтаксису C++, должен стоять символ "точка с запятой".</p>
98
<p>В конце каждой команды, согласно Google и синтаксису C++, должен стоять символ "точка с запятой".</p>
99
<p>Для запуска программы в VS необходимо использовать сочетание Ctrl + F5, в GCC - конструкцию типа:</p>
99
<p>Для запуска программы в VS необходимо использовать сочетание Ctrl + F5, в GCC - конструкцию типа:</p>
100
<p>Если программа запустилась без ошибок - все в порядке. В противном случае система сообщит о наличии сбоя. В этой ситуации исходный код проверяется и корректируется.</p>
100
<p>Если программа запустилась без ошибок - все в порядке. В противном случае система сообщит о наличии сбоя. В этой ситуации исходный код проверяется и корректируется.</p>
101
<p>Интересует<a>профессиональный курс по C++</a>? Добро пожаловать в Otus!<a></a></p>
101
<p>Интересует<a>профессиональный курс по C++</a>? Добро пожаловать в Otus!<a></a></p>
102
102