HTML Diff
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 &lt;iostream&gt; будет заменена при запуске проекта содержимым документа "iostream.h". Он используется стандартной библиотекой языка при выводе и вводе данных на экране.</p>
93 <p>Здесь директива #include используется для подключения различных файлов в код программы. #include &lt;iostream&gt; будет заменена при запуске проекта содержимым документа "iostream.h". Он используется стандартной библиотекой языка при выводе и вводе данных на экране.</p>
94 <p>#include &lt;cstdlib&gt; подключит стандартную библиотеку языка. Это необходимо для работы функции system.</p>
94 <p>#include &lt;cstdlib&gt; подключит стандартную библиотеку языка. Это необходимо для работы функции 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