SEO продвижение сайтов

Уроки программирования на C++ - основы

  1. C++ для начинающих
  2. Редакторы: Visual studio, wxDev-C++
  3. Комментарии
    1. Однострочные //
    2. Многострочные /**/
  4. Структура программы
    1. Подключение библиотек
    2. Пространства имен
  5. Спецсимволы - \n \t и др.
  6. Типы данных
    1. Int – целые числа
    2. bool – да или нет, логика
    3. float – число с точкой, до 6 знаков
    4. double – число с точкой, до 15 знаков
    5. char – один символ
    6. и др.
  7. Переменные
    1. Инициализация переменных
    2. Присвоение данных
    3. Изменить тип данных
  8. Константы в С++
    1. const
    2. #define
    3. Перечислимый тип данных
  9. Консольный ввод и вывод
    1. Ввод – cin >>
    2. Вывод - cout <<
  10. Ветвления
    1. Условия if-if else-else
    2. Операнды - ==, >, <, &&, || и др.
    3. Switch
    4. Тернарный оператор – r = (условие) ? если да : иначе;
    5. Оператор goto
    6. Директивы #ifdef u #ifndef
    7. Исключения try-catch-throw
  11. Циклы в С++
    1. Цикл For
    2. Continue и Break
    3. Цикл While
    4. Do-while
  12. Указатели и Линки
    1. Указатели int *b=&a;
    2. Адресная арифметика
    3. Линки int &b=a;
  13. Динамическая память
  14. Массивы
    1. Массивы синтаксис
    2. Длина массива и обход массива в цикле
    3. Двумерные массивы и многомерные
    4. Динамические массивы
    5. Генератор случайных чисел
  15. Списки
  16. Функции
    1. Функции стандартные
    2. Функции собственные
    3. В аргументе & (ссылки)
    4. Прототипирование функций
    5. В аргументе * (указатель)
    6. Перегрузка функций
    7. Рекурсивный вызов функции
    8. Шаблоны функций <typename T>
  17. Работа с файлами
    1. Записать в файл
    2. Получить данные их файла
  18. Побитовые операции
    1. И, ИЛИ, XOR
    2. Смещение в ЛЕВО и в ПРАВО
  19. Структуры данных struct
  20. ООП в C++
    1. Модификаторы доступа
      1. Public – доступ для всех
      2. Private – только из класс
      3. Protected – из класса и всех дочерних
    2. Конструктор и деструктор
    3. Перегрузка конструктора
    4. This-> – члены своего класса
    5. Прототипирование класса
    6. Использование других файлов
    7. Union в C++
    8. Вложенные структуры
    9. Перечисление - enum
    10. Дружественные классы
    11. Наследование классов
    12. Шаблоны классов
    13. Дружественные функции

ООП в С++ – классы и объекты

Для создания класса в С++ необходимо указать служебное слово class, после указывается имя класса, обычно с большой буквы, потом фигурные скобки. В фигурных скобках описывается тело класса.

Класс - это пользовательский тип данных.

Класс содержит переменные (свойства класса или поля класса) и функции (методы класса). Свойства и методы - являются членами класса.

Модификаторы доступа

  • public — доступ открыт всем, кто видит определение данного класса. Доступ разрешён к данным класса извне.
  • protected — доступ в классе и производным от данного класса. Производные классы (потомки) получают свободный доступ к таким свойствам или метода. Все другие классы такого доступа не имеют.
  • private — доступ открыт ТОЛЬКО самому классу (т.е. функциям-членам данного класса) и друзьям (friend) данного класса - как функциям, так и классам. Однако производные классы (потомки) НЕ получают доступа к этим данным совсем. И все другие классы такого доступа не имеют.

Если отсутствует модификатор, то все функции и переменные, по умолчанию являются закрытыми, но лучше определять модификатор всегда.

Шаблоны функций - typename

В функцию можно передавать аргументы любых типов с помощью конструкции <typename T1> или <typename T1, typename T2>, где Tх - это тип переданной переменной.

Перегрузка функций

Перегрузка функций в С++ – это подмена функции в зависимости от количества аргументов и их типов. Можно использовать две или больше функций с одинаковыми именами, но разными аргументами:

  • по количеству
  • по типу
  • но НЕ типу return

Пример:

Структуры данных struct

Структура — это, объединение различных переменных (даже с разными типами данных), которому можно присвоить имя. Для создания структуры используем ключевое слово struct и в фигурных скобках перечисляем переменные и их значения.

Обращение к переменным структуры через имя структуры, точку и имя переменной - имяСтруктуры.имяПеременной.

Динамическая память

С++ использует методы работы с динамической памятью при помощи операторов new и delete:

  • new — для выделения памяти;
  • delete — для освобождения памяти.

Оператор new используется в следующих формах:

  • new тип; — для переменных
  • new тип[размер]; — для массивов

Память может быть выделена за пределами нашей программы для одного объекта или для массива любого типа, в том числе типа, определенного пользователем. Результатом выполнения операции new будет указатель на отведенную память, или нулевой указатель в случае ошибки.

#include <iostream>
using namespace std;//Пространство имён

int main()
{
setlocale(0,"");

int* i=new int;//Выделение динамической памяти
*i=10;//Присваивание значения
cout << *i << " - адрес: " << i << endl;//10 - адрес: ax2c74b0

delete i;//Освобождение памяти
i=0;//Затираем ссылку на дин. память или i=NULL;

system("pause");//Команда задержки экрана
return 0;
}

Функции в С++

В С++ есть стандартные и собственные функции. Стандартные функции описаны в библиотеках. Реализацию собственных функций описывают самостоятельно. Имеет вид: тип имяФункции(аргумент-1, аргумент-1 и тд.) {тело функции}. Вызывают функцию так: имяФункции(1,2);

Стандартные функции

Стандартные функции - это уже написанные функции со своим алгоритмом, их только вызывают, указав если нужно аргументы.

int a = max(2, 3);//3 – выбирает большее
int b = pow(2, 3);//8 – 2 в степени 3
cout << a << " и " << b << endl;//3 и 8

Собственные функции

Константы в С++

Константы в С++ аналогичны константам в Си, только константы в Си использовалась только директива препроцессора #define, а в С++ ещё и const.

Константы: #define и const

#define MAX 100//Это константа (без ; в конце)
const int n=3;

Значение константы менять нельзя!

Константа может быть и массивом:

Указатели и Линки

В языке C++ очень часто используют указатели и ссылки на переменную.

Понятие указателя

Указатель — это переменная. Такая же, как и любая другая. У нее есть свое значение и свой адрес в памяти. Переменная-указатель объявляется также, как и любые другие переменные, но после имени типа ставится звездочка - *. Чтобы объявить переменную следует указать ее тип, а затем имя. Звездочка является частью типа, а не частью имени.

Пример:

int *a;

А можно и так:

Массивы в С++

Массив - это тип данных, представленный в виде группы ячеек одного типа, объединенных под одним единым именем и расположенных в памяти подряд. Массив - это непрерывная область памяти. Массив имеет индексы (int - целочисленные значения) от меньшего к большему.

Первый элемент массива имеет индекс - НОЛЬ. Имя массива является указателем на весь массив. Элементами массива могут быть данные любого типа, но только одного типа, который указывается заранее.

Массивы бывают – одномерными, двумерными и многомерные (n-мерные). Индексы массива начинаются с нуля (это смещение). Сначала пишется тип данных, которые будут храниться в массиве, потом имя массива, после могут быть указаны данные.

int arr[2];//Создаем массив arr из 2-х элементов
arr[0]=1;//Первый элемент массива
arr[1]=1;//Второй элемент массива

А можно уже с данными, при этом количество элементов указывать не обязательно.

Циклы в С++

Циклы нужны для многократного выполнения действия. Цикл выполняется пока в условии цикла true, также в цикле должен быть изменяющийся счётчик и его начальное значение.

Цикл for

for (int i=1; i<=3; i++)//Начало с 1, до 3, шаг +1
{
cout << i << endl;//Выводит 1 2 3
}

i – это итератор, его можно инициализировать и вне цикла.

Ветвления в С++

Чтобы указать условие при выполнении которого будет выполняться определенный код, а при невыполнении другой код, потребуется прибегнуть к следующим структурам:

Условия if-if else-else

Консольный ввод и вывод данных в C++

В С++, как и в С, нет встроенных в язык средств ввода-вывода. В С++ разработана библиотека ввода-вывода iostream, которая подключается директивой #include <iostream>

Библиотека iostream определяет три стандартных потока:

  • cin стандартный входной поток (stdin в С)
  • cout стандартный выходной поток (stdout в С)
  • cerr стандартный поток вывода сообщений об ошибках (stderr в С)

Для выполнения операций ввода-вывода переопределены две операции поразрядного сдвига:

  • >> получить из входного потока
  • << поместить в выходной поток

Переменные: инициализация и присвоение данных

Инициализация и присвоение данных в С++ начинается с указания типа данных, потом указывается имя переменных, после можно указать значение переменной согласно его типу. Имена переменных могут содержать латинские буквы и цифры, но не могут начинаться с цифры.

double d1(5000.0);//Число с точкой
double d2(5e3);//Другой способ присвоить значение 5000
double d3(.05);//0.05
double d4(5e-2);//Другой способ присвоить значение 0.05

А можно и так…

Типы данных в С++

С++ строготипизированный язык и имеет следующие ТИПЫ ДАННЫХ.

const int HELLO_WORLD=50; - это константа, принято именовать большими буквами.

bool =1 или true (1) или false (0) – да или нет, логика

Int a =123; // 123 – целые числа

float b=(3.14); // 3.14 – число с точкой, до 6 знаков

double c=(3.14); // 3.14 – число с точкой, до 15 знаков

char – один символ

1 бит = (0 или 1)

1 байт = 8 бит (от 0 до 255 = 256 вариантов)

Таблица — Типы данных С++

C++ для начинающих

Язык С++компилируемый, статически типизированный язык программирования общего назначения. Поддерживает такие парадигмы программирования, как процедурное программирование, объектно-ориентированное программирование, обобщённое программирование.

Язык имеет богатую стандартную библиотеку, которая включает в себя распространённые контейнеры и алгоритмы, ввод-вывод, регулярные выражения, поддержку многопоточности и другие возможности. C++ сочетает свойства как высокоуровневых, так и низкоуровневых языков.

Редакторы для C++

Visual studio (https://visualstudio.microsoft.com/ru/downloads/) - самый удобный редактор, хороший IDE, но «тяжёлый» есть и другие.

wxDev-C++ - простая и удобная среда разработки, может создавать как консольные, так и оконные приложения (и др.).

Комментарии кода

Комментарии игнорируются компилятором, можно писать что угодно: пояснение к коду или отключать строчки кода. Комментарии есть однострочные и многострочные.

// Это однострочный комментарий.
/*
Это многострочный комментарий.
Эта программа - ничего не делает.
*/

Структура программы и подключение библиотек

Ошибки в тексте выделить и Ctrl+Enter


Расскажи о нас друзьям

Web-технологии

Подключение к MySQL в PHP

Примеры кода:

    
    //Это данные для подключения к MySQL
    $host='localhost'; // адрес сервера 
    $user='root';      // Login
    $pass='';          // Пароль
    $base='sasha';     // Имя базы данных<>

    echo '<h2>У вас PHP '.phpversion()."версия</h2>\n";
Подробнее...

Интерфейсы и трейты в PHP

Интерфейсы в ООП PHP

Интерфейсы (interface) - это класс, в котором все методы являются абстрактными (abstract) и открытыми (public). В интерфейсе ООП PHP можно задать задать только имена методов и их параметры, а реализованы они обязаны быть в расширяемых ими классах.

Для реализации интерфейса мы используем ключевое слово implements. Класс может реализовать более одного интерфейса, которые разделяются запятыми. Как и классы, интерфейс может содержать константы, которые запрещено переопределять.

Трейты в ООП PHP

Трейты (trait) - это механизм обеспечения повторного использования кода в PHP с учетом одиночного наследования. Трейт отчасти реализует множественное наследование, позволяя разработчику повторно использовать наборы методов свободно, в нескольких независимых классах.

Трейт похож на класс, но создать экземпляр трейта невозможно. Он предназначен для группирования функционала, который потом используется в разных классах с помощью директивы use. Нужные для использования в классе трейты можно указать через запятую.

Код примера:

Подробнее...

Шаблоны проектирования в PHP - паттерны

Шаблон проектирования или паттерн (англ. design pattern) - оптимальный и оригинальный подход в решении типичных, частовстречающихся задач. Эти подходы, приёмы имеют свои названия и используются почти во всех объектно-ориентированных языках программирования.

Паттерны можно классифицировать по назначению (цель, результат) и по тому, к чему обычно применяется к объектам или к классам.

  • Поведенческие (behavioral)
    • цепочка обязанностей (Chain of Responsibility);
    • команда (Command);
    • итератор (Iterator);
    • посредник (Mediator);
    • хранитель (Memento);
    • наблюдатель (Observer);
    • посетитель (Visitor);
    • стратегия (Strategy);
    • состояние (State);
    • шаблонный метод (Template Method).
  • Порождающие (creational)
    • простая фабрика (Simple Factory);
    • фабричный метод (Factory Method);
    • абстрактная фабрика (Abstract Factory);
    • строитель (Builder);
    • прототип (Prototype);
    • одиночка (Singleton).
  • Структурные (structural)
    • адаптер (Adapter);
    • мост (Bridge);
    • компоновщик (Composite);
    • декоратор (Decorator);
    • фасад (Facade);
    • приспособленец (Flyweight);
    • заместитель (Proxy).
Подробнее...
Интересные статьи

Стишки-депрессяшки

Стишки-депрессяшки

У меня нет попы

у меня нет тить

я должна работать

чтобы как то жить

©

В камасутре много

интересных поз

жаль у нас с женою

остеохондроз

©

Надо же приснится

всякая херня

прямо на работе

среди бела дня

Подробнее...

Почему или резонные вопросы

Почему или резонные вопросы

Хотель бы получить ответы на такие вопросы:

  1. Почему современные технологии одновременно позволяют производить банки для пива, которые не разлагаются на свалке за 100 лет, и кузова автомобилей, которые гниют за 3-4 года?
  2. Почему лимонный сок сделан из концентрата, а средство для мытья посуды – из настоящего лимона?
  3. Почему белая нитка, которой соединены новые носки, всегда оказывается прочнее, чем нитки, из которых сделаны сами носки?
Подробнее...

Детские загадки для взрослых

murzilka m

*Загадки, которые были опубликованы в журнале "Мурзилка" 30 лет назад!!! Сегодня они не для детей точно: ))*

1. Чтобы спереди погладить, нужно сзади полизать. (Почтовая марка)

2. Кругом волоса, посредине колбаса. (Кукуруза)

3. Сверху черно внутри красно, как засунешь так прекрасно. (Галоши)

Подробнее...

Оставить заявку

Закрыть
Заполните фрму и отправьте нам заяку
Заполните все обязательные поля*
captcha
Перезагрузить