C++ Ключевое слово friend
Ключевое слово friend Ключевое слово friend предоставляет функции или классу, не являющимся членом данного класса, доступ к закрытым членам этого класса. Т.е. класс начинает считать, что эта функция или иной класс — «часть него», как следствие эта функция или класс имеют доступ ко всем полям и методам исходного класса. Дружественные функции Для создания дружественной функции […]
21. C++ Методы вне класса
Методы вне класса Как можно было увидеть в теме «модификаторы доступа» код может становиться весьма большим, и плохо читаемым, и это притом, что там простейший код и минимум функций, чтоже делать, когда функции будут по несколько десятков/сотен строчек кода? Ведь тогда класс разрастется и анализировать его будет сложно. Для этого существует возможность определения метода вне […]
20. С++ Модификаторы доступа
Модификаторы доступа Ранее мы говорили про классы и упоминали модификаторы доступа, также мы говорили, что можно от класса унаследовать все или отдельные поля и методы, сейчас поговорим об этом подробнее. Модификаторы доступа нужны для ограничения доступа пользователя (стороннего программиста) в ваш класс. Например в предыдущем примере мы могли спокойно обращаться и изменять поля имени и […]
19. C++ Понятие класса
Понятие класса В языке C++ активно используются классы, что они из себя представляют: Как уже было сказано ранее – существует понятие структуры (обособление данных), так вот класс – своего рода продолжение структуры, в котором помимо данных существуют методы(функции для работы с этими данными). Примечание: В языке C++ понятия структуры и класса имеют незначительные различия т.к. […]
17. С/С++ Объединения (Union)
Объединения (union) Одной из наиболее удобных вещей на мой взгляд являются объединения (в языке C они более употребимы) Что это такое: Как известно в памяти лежит какая-то информация, набор Байт, и всевозможные short, long, int это лишь способ представить эти данные, так вот, с помощью union можно «сказать» что в этой области памяти лежит например: […]
16. C/C++ Структуры данных
Структуры данных В языках C и C++ есть способ логически объединить данные, для этого используются Структуры в языке C Структуры и классы в языке C++ Между ними есть различия, и в языке C++ структуры похожи на классы и в них можно добавить методы, также у класса все поля по умолчанию private и наследование по умолчанию […]
18. C++ Рекурсия
Рекурсия С++ позволяет определять рекурсивные функции, т.е. функции которые вызывают сами себя напрямую или опосредованно. Например, следующая функция вычисляет факториал: int factorial(int n) { if (n == 0) return 1; return factorial(n — 1) * n; } Посмотрим на графике, что в этом случае произойдет: допустим мы хотим посчитать факториал числа 3 factorial(3); Все будет […]
15. C/C++ Многомерный массив в динамической памяти
Многомерный массив в динамической памяти Ранее мы рассмотрели, как создать массив в динамической памяти. Рассмотрим теперь, как создать двумерный массив в динамической памяти: Принципиальная идея показана на рисунке – мы создаем массив указателей на одномерные массивы, которые играют роль строк, и перемещаясь по ним получаем доступ к элементу. В коде это выглядит так (пример на […]
14. C/C++ Работа с динамической памятью
Работа с динамической памятью Работа с динамической памятью различна в языках C и C++, постараемся рассмотреть оба варианта Язык C: Стандартная библиотека cstdlib предоставляет четыре функции для управления памятью: void * malloc ( size_t size); // выделяет область памяти размера size. Данные не инициализируются. void * calloc ( size_t nmemb , size_t size); //выделяет массив […]
22. C++ Ключевое слово const в классах и функциях
Ключевое слово const в классах и функциях (С++) Ключевое слово const в начале объявления метода/функции привязывает его к типу возвращаемого значения, т.е. говорит о том, что Вы возвращаете из метода константный объект. const int Func(){//code}; Ключевое слово const в объектах классов Объекты классов можно сделать константными (используя ключевое слово const). Инициализация выполняется через конструкторы классов: […]